【发布时间】:2012-08-30 21:34:31
【问题描述】:
在序列化数据时,有什么方法可以通过 DataContractSerializer 配置 WCF 服务使用的默认 XmlWriter?
使用 DataContractSerializer 的现成 WCF 服务正在丢失新行 (\r\n)。
[编辑:我为造成的混乱道歉。开箱即用的 WCF 不会丢失新行。]
我可以使用 XmlWriterSettings (NewLineHandling.Entitize) 使 XmlWriter 将新行编码为 
,但我想让 WCF 在序列化我的对象时表现相同。
public string Serialize<T>(T object)
{
var serializer = new DataContractSerializer(typeof(T));
using (var stringWriter = new StringWriter())
{
var settings = new XmlWriterSettings { NewLineHandling = NewLineHandling.Entitize };
using (var xmlWriter = XmlWriter.Create(stringWriter, settings))
{
serializer.WriteObject(xmlWriter, object);
string xml = stringWriter.ToString();
return xml;
}
}
}
【问题讨论】: