Skip to content

Commit 5fcd61e

Browse files
committed
Merge pull request #3 from csantero/serialize-enums
serialize enums
2 parents e4fc961 + 8ec6cb8 commit 5fcd61e

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

JSONAPI.Tests/Json/JsonApiMediaFormaterTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ public void SetupModels()
7373

7474
}
7575

76+
private enum TestEnum
77+
{
78+
79+
}
80+
7681
[TestMethod]
7782
public void CanWritePrimitiveTest()
7883
{
@@ -89,6 +94,8 @@ public void CanWritePrimitiveTest()
8994
Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(DateTime?)), "CanWriteTypeAsPrimitive returned wrong answer for nullable DateTime!");
9095
Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(DateTimeOffset?)), "CanWriteTypeAsPrimitive returned wrong answer for nullable DateTimeOffset!");
9196
Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(Guid?)), "CanWriteTypeAsPrimitive returned wrong answer for nullable Guid!");
97+
Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(TestEnum)), "CanWriteTypeAsPrimitive returned wrong answer for enum!");
98+
Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(TestEnum?)), "CanWriteTypeAsPrimitive returned wrong answer for nullable enum!");
9299
Assert.IsFalse(formatter.CanWriteTypeAsPrimitive(typeof(Object)), "CanWriteTypeAsPrimitive returned wrong answer for Object!");
93100
}
94101

JSONAPI/Json/JsonApiFormatter.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ public bool CanWriteTypeAsPrimitive(Type objectType)
5555
|| typeof(System.DateTime?).IsAssignableFrom(objectType)
5656
|| typeof(System.DateTimeOffset?).IsAssignableFrom(objectType)
5757
|| typeof(String).IsAssignableFrom(objectType)
58+
|| objectType.IsEnum
59+
|| (objectType.IsGenericType &&
60+
objectType.GetGenericTypeDefinition() == typeof(Nullable<>) &&
61+
objectType.GetGenericArguments()[0].IsEnum)
5862
)
5963
return true;
6064
else return false;

0 commit comments

Comments
 (0)