データをシリアル化するときに 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;
}
}
}