2013-03-05 64 views
3

爲什麼下面的作品覆蓋的Guid格式:如何覆蓋ServiceStack.Text中的字符串序列化?

ServiceStack.Text.JsConfig<Guid>.SerializeFn = guid => guid.ToString(); 

但這樣做是爲了迫使空字符串爲空字符串不?

ServiceStack.Text.JsConfig<string>.SerializeFn = str => str ?? string.Empty; 

我已啓用此功能:

ServiceStack.Text.JsConfig.IncludeNullValues = true; 

我也曾嘗試字符串類,而不是原始。原始版本名爲.RawSerializeFn

是否有其他解決方法?

回答

2

字符串在ServiceStack.Text中特別處理,因此您無法用配置覆蓋其行爲。

鑑於您無法覆蓋它,我可以看到的唯一解決方案(除了提交拉請求之外)是反射模型並使用空字符串填充空屬性。

+0

是否有一個標準的方法來做到這一點所有的答覆?由於ServiceStack.Text.JsConfig .OnSerializingFn看起來好像需要爲每個響應DTO配置。 – Aaron 2013-03-05 02:35:31

+0

不幸的是,需要爲每個DTO調用這些,所以您需要一些反射來反映所有類型。 [引發問題](https://github.com/ServiceStack/ServiceStack.Text/issues)如果你想看到可配置的支持發送空字符串作爲空字符串 – mythz 2013-03-05 03:18:42

+0

確定發佈它作爲一個問題。現在,在客戶端使用實用函數遞歸地用「」替換NULL,但當我在架構中遇到不是字符串的可空字符串時,它當然不會工作。 – Aaron 2013-03-05 04:00:00