Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit 3d5c19a

Browse files
committed
Add DateTime to TypeCode switch
1 parent 86fe354 commit 3d5c19a

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

src/ServiceStack.Text/Common/DeserializeBuiltin.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,15 @@ private static ParseStringDelegate GetParseFn()
6060
return value => double.Parse(value, CultureInfo.InvariantCulture);
6161
case TypeCode.Decimal:
6262
return value => decimal.Parse(value, CultureInfo.InvariantCulture);
63+
case TypeCode.DateTime:
64+
return value => DateTimeSerializer.ParseShortestXsdDateTime(value);
6365
case TypeCode.Char:
6466
char cValue;
6567
return value => char.TryParse(value, out cValue) ? cValue : '\0';
6668
}
6769

6870
if (typeof(T) == typeof(Guid))
6971
return value => new Guid(value);
70-
if (typeof(T) == typeof(DateTime))
71-
return value => DateTimeSerializer.ParseShortestXsdDateTime(value);
7272
if (typeof(T) == typeof(DateTimeOffset))
7373
return value => DateTimeSerializer.ParseDateTimeOffset(value);
7474
if (typeof(T) == typeof(TimeSpan))
@@ -107,13 +107,13 @@ private static ParseStringDelegate GetParseFn()
107107
return value => string.IsNullOrEmpty(value) ? (double?)null : double.Parse(value, CultureInfo.InvariantCulture);
108108
case TypeCode.Decimal:
109109
return value => string.IsNullOrEmpty(value) ? (decimal?)null : decimal.Parse(value, CultureInfo.InvariantCulture);
110+
case TypeCode.DateTime:
111+
return value => DateTimeSerializer.ParseShortestNullableXsdDateTime(value);
110112
case TypeCode.Char:
111113
char cValue;
112114
return value => string.IsNullOrEmpty(value) ? (char?)null : char.TryParse(value, out cValue) ? cValue : '\0';
113115
}
114116

115-
if (typeof(T) == typeof(DateTime?))
116-
return value => DateTimeSerializer.ParseShortestNullableXsdDateTime(value);
117117
if (typeof(T) == typeof(TimeSpan?))
118118
return value => DateTimeSerializer.ParseNullableTimeSpan(value);
119119
if (typeof(T) == typeof(Guid?))

tests/ServiceStack.Text.Tests/BclStructTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ public void GetUnderlyingTypeCode_tests()
114114
Assert.That(typeof(float?).GetUnderlyingTypeCode(), Is.EqualTo(TypeCode.Single));
115115
Assert.That(typeof(double?).GetUnderlyingTypeCode(), Is.EqualTo(TypeCode.Double));
116116
Assert.That(typeof(decimal?).GetUnderlyingTypeCode(), Is.EqualTo(TypeCode.Decimal));
117+
Assert.That(typeof(DateTime?).GetUnderlyingTypeCode(), Is.EqualTo(TypeCode.DateTime));
117118
}
118119
}
119120
}

0 commit comments

Comments
 (0)