0

我使用下面的代碼序列化我的對象DataContractSerializer的編碼 n

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

我搜索了一下,我沒有看到任何關於此的文章。我是否在我的序列化代碼中缺少一些屬性?

回答

0

巴貝爾 - 完全沒有,你不會錯過任何特殊的屬性。 \ n被序列化。如果它被解釋爲非換行符特殊字符,則會在字符串中看到\ n,而不是\ n本身。你沒有捕捉到客戶端的換行符,並且你是否通過stdout調用來驗證它?

+0

你是正確的..它正在序列化...我應該使用的詞是「逃脫」。請注意,\ r不僅是序列化的,而且也是轉義的。爲什麼不是\ n的情況? – BabelFish 2011-02-04 21:00:27