ServiceStack-在作用域内设置序列化函数



我目前确定了一些配置值的范围,以防止全局进行任何更改:

 using(var scope = JsConfig.BeginScope()) 
 {
    scope.DateHandler = JsonDateHandler.ISO8601;
    scope.EmitCamelCaseNames = true;
    // perform serialization
 }

然而,我现在需要用破折号格式化Guids,这需要我更改Guids的序列化函数,如下所示:

 JsConfig<Guid>.SerializeFn = guid => guid.ToString("D");

是否可以在与上述其他配置设置相同的范围内进行此更改?

不,您不能对其进行作用域。但您可以根据需要添加然后删除序列化方法,这些方法可以自己管理作用域。

JsConfig<Guid>.SerializeFn = guid => guid.ToString("D");
Debug.WriteLine(new Guid().ToJson());
JsConfig<Guid>.SerializeFn = null;
Debug.WriteLine(new Guid().ToJson());

这将输出:

"00000000-0000-0000-0000-000000000000"
"00000000000000000000000000000000"

最新更新