- Timestamp:
- 05/27/14 10:44:12 (10 years ago)
- Location:
- trunk/sources
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Persistence/3.3/Default/CompositeSerializers/Number2StringSerializer.cs
r9456 r10896 78 78 /// </returns> 79 79 public bool CanSerialize(Type type) { 80 return numberSerializerMap.ContainsKey( type);80 return numberSerializerMap.ContainsKey(Nullable.GetUnderlyingType(type) ?? type); 81 81 } 82 82 … … 90 90 /// </returns> 91 91 public string JustifyRejection(Type type) { 92 return string.Format("not a number type (one of {0})",92 return string.Format("not a (nullable) number type (one of {0})", 93 93 string.Join(", ", numberSerializers.Select(n => n.SourceType.Name).ToArray())); 94 94 } … … 100 100 /// <returns></returns> 101 101 public string Format(object obj) { 102 return ((XmlString)numberSerializerMap[obj.GetType()].Format(obj)).Data; 102 if (obj == null) return "null"; 103 Type type = obj.GetType(); 104 return ((XmlString)numberSerializerMap[Nullable.GetUnderlyingType(type) ?? type].Format(obj)).Data; 103 105 } 104 106 … … 110 112 /// <returns></returns> 111 113 public object Parse(string stringValue, Type type) { 114 if (stringValue == "null") return null; 112 115 try { 113 return numberSerializerMap[ type].Parse(new XmlString(stringValue));116 return numberSerializerMap[Nullable.GetUnderlyingType(type) ?? type].Parse(new XmlString(stringValue)); 114 117 } 115 118 catch (FormatException e) { -
trunk/sources/HeuristicLab.Tests/HeuristicLab.Persistence-3.3/UseCases.cs
r10895 r10896 1464 1464 } 1465 1465 1466 [TestMethod] 1467 [TestCategory("Persistence")] 1468 [TestProperty("Time", "short")] 1469 public void TestOptionalNumberEnumerable() { 1470 var values = new List<double?> {0, null, double.NaN, double.PositiveInfinity, double.MaxValue, 1}; 1471 XmlGenerator.Serialize(values, tempFile); 1472 var newValues = (List<double?>) XmlParser.Deserialize(tempFile); 1473 CollectionAssert.AreEqual(values, newValues); 1474 } 1475 1466 1476 1467 1477 [ClassInitialize]
Note: See TracChangeset
for help on using the changeset viewer.