ServiceStack - 在范围内设置序列化功能

时间:2013-07-25 04:19:18

标签: servicestack

我目前使用一些配置值来阻止全局更改:

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

    // perform serialization
 }

但是我现在需要用破折号格式化Guids,这需要我更改guids的序列化功能,如下所示:

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

是否可以像上面的其他配置设置一样在范围内进行此更改?

1 个答案:

答案 0 :(得分:1)

不,你不能把它范围化。但是您可以添加然后删除序列化方法,因为您需要自己管理范围。

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"