2013-10-31 38 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