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

Commit 2426427

Browse files
committed
resolve nullable Enum serialization
1 parent feacee3 commit 2426427

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

src/ServiceStack.Text/Common/JsWriter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,9 +284,9 @@ public WriteObjectDelegate GetValueTypeToStringMethod(Type type)
284284
{
285285
if (underlyingType.IsEnum)
286286
{
287-
if (type.HasAttribute<DataContractAttribute>())
287+
if (underlyingType.HasAttribute<DataContractAttribute>())
288288
return Serializer.WriteEnumMember;
289-
if (type.HasAttribute<FlagsAttribute>())
289+
if (underlyingType.HasAttribute<FlagsAttribute>())
290290
return Serializer.WriteEnumFlags;
291291
return Serializer.WriteEnum;
292292
}

tests/ServiceStack.Text.Tests/EnumTests.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,8 @@ public enum Day
229229
class EnumMemberDto
230230
{
231231
public Day Day { get; set; }
232+
233+
public Day? NDay { get; set; }
232234
}
233235

234236
[Test]
@@ -256,6 +258,21 @@ public void Does_serialize_EnumMember_enum()
256258
Assert.That(Day.Sunday.ToJson(), Is.EqualTo("\"SUN\""));
257259
Assert.That(Day.Sunday.ToJsv(), Is.EqualTo("SUN"));
258260
Assert.That(Day.Sunday.ToCsv(), Is.EqualTo("SUN"));
261+
262+
Assert.That(((Day?)Day.Sunday).ToJson(), Is.EqualTo("\"SUN\""));
263+
Assert.That(((Day?)Day.Sunday).ToJsv(), Is.EqualTo("SUN"));
264+
Assert.That(((Day?)Day.Sunday).ToCsv(), Is.EqualTo("SUN"));
265+
}
266+
267+
class Test
268+
{
269+
public double Double { get; set; }
270+
}
271+
272+
[Test]
273+
public void METHOD()
274+
{
275+
new Test { Double = 204753574.10189867 }.ToJson().Print();
259276
}
260277

261278
}

0 commit comments

Comments
 (0)