【问题标题】:DataContractSerializer encode \nDataContractSerializer 编码\n
【发布时间】:2010-11-07 14:44:16
【问题描述】:

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

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 的最佳方式是什么?

我搜索过,但没有看到任何关于此的文章。我的序列化代码中是否缺少某些属性?

【问题讨论】:

    标签: serialization xml-serialization datacontractserializer newline


    【解决方案1】:

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

    【讨论】:

    • 你是对的..它正在被序列化......我应该使用的词是“转义”。请注意, \r 不仅被序列化,而且被转义。为什么 \n 不是这样?
    猜你喜欢
    • 2012-04-22
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多