【发布时间】:2018-01-04 04:55:43
【问题描述】:
是否可以将枚举序列化为适当的字符串值或 EnumMember 属性指定的值而不是数字? JSON 序列化似乎忽略了 EnumMember 属性的 Value 属性。如果我将 WebMessageFormat 更改为 Xml,它可以正常工作,但我需要使用 JSON。
我有以下 IIS 托管的 REST 服务
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "test")]
SomeObject Test();
一些对象:
[DataContract]
public class SomeObject
{
[DataMember]
public SomeEnum FooBar
{
get;
set;
}
}
一些枚举:
[DataContract]
public enum SomeEnum
{
[EnumMember(Value = "FooValue")]
[Description("FooDescription")]
Foo,
[EnumMember(Value = "BarValue")]
[Description("BarDescription")]
Bar,
}
我得到了什么:
{"FooBar":0}
我想获得以下之一(最好是第一个,但任何一个都可以):
{"FooBar": "FooValue"}
{"FooBar": "Foo"}
【问题讨论】:
-
嘿!您是否能够使用下面建议的方法解决问题?如果不能,您能否更新详细信息和可能的解决方案?如果是,您可以在下面投票和/或将回复标记为 asnwer 吗?