ServiceStack 将默认 int 值更改为 -1 而不是 0
ServiceStack Changing Default int value to -1 rather 0
可以更改整数的默认值吗?
当我发布一条 JSON 消息时,我没有设置一个 int 值,这个值默认为 0,这对我的应用程序来说似乎是个问题,因为这个值是必需的。
那么我可以将 int 的默认值更改为 -1 而不是 0 吗?
您可以为整数注册自定义序列化程序:
JsConfig.IncludeNullValues = true;
JsConfig<int>.RawSerializeFn = i => i == 0 ? "-1" : i.ToString();
new Model { Int = 0 }.ToJson().Print(); // {"Int":-1}
不幸的是,它要求您允许通过指定 JsConfig.IncludeNullValues = true
全局配置来序列化默认值 (0)
,但可以限定为:
using (JsConfig.With(includeNullValues:true))
{
new Model { Int = 0 }.ToJson().Print(); // {"Int":-1}
}
在 ServiceStack 的下一个 v4.0.36+ 中,您将能够指定特定于类型的配置,例如:
JsConfig<int>.IncludeDefaultValue = true;
JsConfig<int>.RawSerializeFn = i => i == 0 ? "-1" : i.ToString();
可以更改整数的默认值吗? 当我发布一条 JSON 消息时,我没有设置一个 int 值,这个值默认为 0,这对我的应用程序来说似乎是个问题,因为这个值是必需的。 那么我可以将 int 的默认值更改为 -1 而不是 0 吗?
您可以为整数注册自定义序列化程序:
JsConfig.IncludeNullValues = true;
JsConfig<int>.RawSerializeFn = i => i == 0 ? "-1" : i.ToString();
new Model { Int = 0 }.ToJson().Print(); // {"Int":-1}
不幸的是,它要求您允许通过指定 JsConfig.IncludeNullValues = true
全局配置来序列化默认值 (0)
,但可以限定为:
using (JsConfig.With(includeNullValues:true))
{
new Model { Int = 0 }.ToJson().Print(); // {"Int":-1}
}
在 ServiceStack 的下一个 v4.0.36+ 中,您将能够指定特定于类型的配置,例如:
JsConfig<int>.IncludeDefaultValue = true;
JsConfig<int>.RawSerializeFn = i => i == 0 ? "-1" : i.ToString();