Changeset 2990
- Timestamp:
- 03/10/10 13:39:32 (15 years ago)
- Location:
- trunk/sources/HeuristicLab.Persistence/3.3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Storable/StorableSerializer.cs
r2983 r2990 40 40 41 41 public object CreateInstance(Type type, IEnumerable<Tag> metaInfo) { 42 object instance = StorableConstructorAttribute.CallStorableConstructor(type); 43 if (instance == null) 44 instance = Activator.CreateInstance(type, true); 45 return instance; 42 try { 43 object instance = StorableConstructorAttribute.CallStorableConstructor(type); 44 if (instance == null) 45 instance = Activator.CreateInstance(type, true); 46 return instance; 47 } catch (TargetInvocationException x) { 48 throw new PersistenceException( 49 "Could not instantiate storable object: Encountered exception during constructor call", 50 x.InnerException); 51 } 46 52 } 47 53 -
trunk/sources/HeuristicLab.Persistence/3.3/Tests/UseCases.cs
r2983 r2990 715 715 } 716 716 717 [EmptyStorableClass] 718 public class ExplodingDefaultConstructor { 719 public ExplodingDefaultConstructor() { 720 throw new Exception("this constructor will always fail"); 721 } 722 public ExplodingDefaultConstructor(string password) { 723 } 724 } 725 726 [TestMethod] 727 public void TestConstructorExceptionUnwrapping() { 728 ExplodingDefaultConstructor x = new ExplodingDefaultConstructor("password"); 729 XmlGenerator.Serialize(x, tempFile); 730 try { 731 ExplodingDefaultConstructor newX = (ExplodingDefaultConstructor)XmlParser.Deserialize(tempFile); 732 Assert.Fail("Exception expected"); 733 } catch (PersistenceException pe) { 734 Assert.AreEqual(pe.InnerException.Message, "this constructor will always fail"); 735 } 736 } 737 717 738 [ClassInitialize] 718 739 public static void Initialize(TestContext testContext) {
Note: See TracChangeset
for help on using the changeset viewer.