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