Changeset 1683 for trunk/sources/HeuristicLab.Persistence/3.3/Default
- Timestamp:
- 04/28/09 12:45:32 (15 years ago)
- Location:
- trunk/sources/HeuristicLab.Persistence/3.3/Default
- Files:
-
- 3 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Persistence/3.3/Default/Decomposers/EnumerableDecomposer.cs
r1679 r1683 53 53 } 54 54 } 55 56 57 [EmptyStorableClass]58 public class StackDecomposer : IDecomposer {59 60 public int Priority {61 get { return 100; }62 }63 64 65 public bool CanDecompose(Type type) {66 return type.IsGenericType &&67 type.GetGenericTypeDefinition() == typeof(Stack<>);68 }69 70 public IEnumerable<Tag> CreateMetaInfo(object o) {71 return new Tag[] { };72 }73 74 public IEnumerable<Tag> Decompose(object obj) {75 foreach (object o in (IEnumerable)obj) {76 yield return new Tag(null, o);77 }78 }79 80 public object CreateInstance(Type type, IEnumerable<Tag> metaInfo) {81 return Activator.CreateInstance(type, true);82 }83 84 public void Populate(object instance, IEnumerable<Tag> tags, Type type) {85 MethodInfo addMethod = type.GetMethod("Push");86 try {87 foreach (var tag in tags)88 addMethod.Invoke(instance, new[] { tag.Value });89 } catch (Exception e) {90 throw new PersistenceException("Exception caught while trying to populate enumerable.", e);91 }92 }93 }94 55 } -
trunk/sources/HeuristicLab.Persistence/3.3/Default/Xml/Primitive/String2XmlFormatter.cs
r1679 r1683 9 9 10 10 namespace HeuristicLab.Persistence.Default.Xml.Primitive { 11 12 [EmptyStorableClass]13 public class TimeSpan2XmlFormatter : PrimitiveXmlFormatterBase<TimeSpan> {14 15 public override XmlString Format(TimeSpan o) {16 return new XmlString(o.ToString());17 }18 19 public override TimeSpan Parse(XmlString t) {20 try {21 return TimeSpan.Parse(t.Data);22 } catch (FormatException x) {23 throw new PersistenceException("Cannot parse TimeSpan string representation.", x);24 } catch (OverflowException x) {25 throw new PersistenceException("Overflow during TimeSpan parsing.", x);26 }27 }28 }29 30 [EmptyStorableClass]31 public class Guid2XmlFormatter : PrimitiveXmlFormatterBase<Guid> {32 33 public override XmlString Format(Guid o) {34 return new XmlString(o.ToString("D", CultureInfo.InvariantCulture));35 }36 37 public override Guid Parse(XmlString t) {38 try {39 return new Guid(t.Data);40 } catch (FormatException x) {41 throw new PersistenceException("Cannot parse Guid string representation.", x);42 } catch (OverflowException x) {43 throw new PersistenceException("Overflow during Guid parsing.", x);44 }45 }46 }47 11 48 12 [EmptyStorableClass]
Note: See TracChangeset
for help on using the changeset viewer.