2013-10-31 39 views
2

我正在使用servicestack並使用ORMLite從數據庫檢索數據。 有些DB的行是字符串,其中一些需要被空格修剪他們sended到客戶端像以前一樣:使用ServiceStack/ORMLite C#字符串修整

{... ,"folderCode":"5150001  ",....} 

是否ORMLite提供了一種方法來修剪對象映射中的字符串?或者ServiceStack提供了一種在序列化期間修剪字符串的方法?

提前致謝!

回答

2

如果您只需要在某個類的幾個特定屬性上完成此操作,則可以使用OnSerializingFn

給定DummyClass與您要序列化

public class DummyClass 
{ 
    public string FolderCode { get; set; } 
} 

然後覆蓋OnSerializingFn

JsConfig<DummyClass>.OnSerializingFn = obj => 
{ 
    obj.FolderCode = obj.FolderCode.Trim(); 
    return obj; 
}; 
+1

你需要做到這一點(覆蓋DTO類型的序列化,而不是原因的FolderCode屬性重寫'string'本身的序列化)是[ServiceStack.Text使用特殊的'JsonUtils.WriteString'方法](https://github.com/ServiceStack/ServiceStack.Text/blob/master/src/ServiceStack.Text/JsonSerializer .cs#L71)爲st環類型,默默地忽略任何潛在的'OnSerializingFn'或其他每類定製序列化代碼,大概是出於性能原因。 –

+0

感謝它看起來不錯,但以這種方式,我應該爲每個對象做。我有數百個類,其中一些有需要修剪的字符串。它不會很慢嗎? 有沒有辦法用註釋或類似的方法做到這一點? – Pizzaboy