ServiceStack将默认int值更改为-1而不是0

时间:2015-01-12 18:20:32

标签: servicestack

可以更改整数的默认值吗? 当我发布一条JSON消息时,我没有设置一个int值,默认为0,这对我的应用程序来说似乎是一个问题,因为这个值是必需的。 那么我可以将int的默认值更改为-1而不是0吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下内容注册自定义序列化程序:

JsConfig.IncludeNullValues = true;
JsConfig<int>.RawSerializeFn = i => i == 0 ? "-1" : i.ToString();

new Model { Int = 0 }.ToJson().Print(); // {"Int":-1}

不幸的是,它要求您通过指定(0)全局配置来序列化默认值JsConfig.IncludeNullValues = true,但可以限定为:

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();