1

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

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

    // perform serialization
 }

但是,我现在需要用破折号格式化 Guid,这需要我更改 guid 的序列化函数,如下所示:

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

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

4

1 回答 1

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"
于 2013-07-25T20:56:52.600 回答