DataContractSerializer编码\ n

时间:2010-11-07 14:44:17

标签: serialization xml-serialization datacontractserializer newline

我使用以下代码序列化我的对象

DataContractSerializer ser = new DataContractSerializer(obj.GetType());
String text;
using (MemoryStream memoryStream = new MemoryStream())
{
  ser.WriteObject(memoryStream, obj);
  byte[] data = new byte[memoryStream.Length];
  Array.Copy(memoryStream.GetBuffer(), data, data.Length);
  text = Encoding.UTF8.GetString(data);
}

我的对象是这样序列化的:

<Meta xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><Description>This is my new file&#xD;\n&#xD;\nMore Data</Description><Title>My Other Test Document</Title></Meta>

请注意我的\ n未被转义。这是为什么?通过xml发送\ r \ n的最佳方法是什么。

我搜索过,我没有看到任何关于此的文章。我在序列化代码中遗漏了一些属性吗?

1 个答案:

答案 0 :(得分:0)

巴别塔 - 完全没有,你在这里没有遗漏任何特殊属性。 被序列化。如果它被解释为非换行特殊字符,您将在字符串中看到\ n,而不是\ n本身。您是不是在客户端捕获换行符,并通过stdout调用将其吐出来验证它吗?