2013-07-25 31 views
1

我目前範圍正在全球範圍內取得了一定的配置值,以防止任何變化:ServiceStack - 一個範圍內設置序列化功能

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

    // perform serialization 
} 

不過,我現在需要的GUID與要求我更改序列化功能的破折號格式化如下所示:

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

是否可以在上述其他配置設置範圍內進行此更改?

回答

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"