diff --git a/JSONAPI.Tests/Json/JsonApiMediaFormaterTests.cs b/JSONAPI.Tests/Json/JsonApiMediaFormaterTests.cs index fe2c7e96..94490d44 100644 --- a/JSONAPI.Tests/Json/JsonApiMediaFormaterTests.cs +++ b/JSONAPI.Tests/Json/JsonApiMediaFormaterTests.cs @@ -73,6 +73,11 @@ public void SetupModels() } + private enum TestEnum + { + + } + [TestMethod] public void CanWritePrimitiveTest() { @@ -89,6 +94,8 @@ public void CanWritePrimitiveTest() Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(DateTime?)), "CanWriteTypeAsPrimitive returned wrong answer for nullable DateTime!"); Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(DateTimeOffset?)), "CanWriteTypeAsPrimitive returned wrong answer for nullable DateTimeOffset!"); Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(Guid?)), "CanWriteTypeAsPrimitive returned wrong answer for nullable Guid!"); + Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(TestEnum)), "CanWriteTypeAsPrimitive returned wrong answer for enum!"); + Assert.IsTrue(formatter.CanWriteTypeAsPrimitive(typeof(TestEnum?)), "CanWriteTypeAsPrimitive returned wrong answer for nullable enum!"); Assert.IsFalse(formatter.CanWriteTypeAsPrimitive(typeof(Object)), "CanWriteTypeAsPrimitive returned wrong answer for Object!"); } diff --git a/JSONAPI/Json/JsonApiFormatter.cs b/JSONAPI/Json/JsonApiFormatter.cs index 774c7c41..5bc1fa79 100644 --- a/JSONAPI/Json/JsonApiFormatter.cs +++ b/JSONAPI/Json/JsonApiFormatter.cs @@ -55,6 +55,10 @@ public bool CanWriteTypeAsPrimitive(Type objectType) || typeof(System.DateTime?).IsAssignableFrom(objectType) || typeof(System.DateTimeOffset?).IsAssignableFrom(objectType) || typeof(String).IsAssignableFrom(objectType) + || objectType.IsEnum + || (objectType.IsGenericType && + objectType.GetGenericTypeDefinition() == typeof(Nullable<>) && + objectType.GetGenericArguments()[0].IsEnum) ) return true; else return false;