这是我目前的回复......(来自我的RESTful API)
[ { "batchID": 1, "status": "IN_PROGRESS" } ]
但我真正想要的是......
[ { "batchID": 1, "status": 10 -- which means "In_progress" in my ENUM } ]
这是我的c#DTO ......
public class ReplyItem { public int BatchID { get; set; } public BatchStatusCodes Status { get; set; } }
所以在JSON中我BatchStatusCode
被序列化为一个字符串,但我希望它是一个整数,因为ENUM具有特定的每个值集(在5的上升)
一个解决方案:我知道我可以BatchStatusCodes
改为一个int
,每当我使用它时,我可以将ENUM转换为整数,但在回复中包含ENUM会使它稍微更自我描述.
我希望也许我可以使用一个属性或一些这样的花哨技巧,或者可能设置一个服务范围的变量来不处理当前的枚举?
您可以[Flags]
向要将其视为数字的枚举添加属性,例如:
[Flags] BatchStatusCodes { ... }
否则,您可以获取ServiceStack.Text将所有枚举视为整数:
JsConfig.TreatEnumAsInteger = true;