我目前使用一些配置值来阻止全局更改:
using(var scope = JsConfig.BeginScope())
{
scope.DateHandler = JsonDateHandler.ISO8601;
scope.EmitCamelCaseNames = true;
// perform serialization
}
但是我现在需要用破折号格式化Guids,这需要我更改guids的序列化功能,如下所示:
JsConfig<Guid>.SerializeFn = guid => guid.ToString("D");
是否可以像上面的其他配置设置一样在范围内进行此更改?
答案 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"