0

J'utilise le code suivant pour sérialiser mon objetencode 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); 
} 

Mon objet est sérialisation comme ceci:

<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> 

Notez que mon \ n était pas échappé. Pourquoi donc? Quel est le meilleur moyen d'envoyer \ r \ n via xml.

J'ai cherché et je ne vois pas d'articles à ce sujet. Est-ce que je manque un attribut dans mon code sérialisé?

Répondre

0

Babel - pas du tout, vous ne manquez pas d'attributs spéciaux ici. Le \ n est être sérialisé. S'il était interprété comme un caractère spécial non-retour-de-ligne, vous verriez \ n dans la chaîne, pas \ n lui-même. N'attrapez-vous pas le saut de ligne sur le client et l'avez-vous vérifié en le crachant via un appel stdout?

+0

vous avez raison ... il est en cours de sérialisation ... le mot que j'aurais dû utiliser est "échappé". Notez que le \ r est non seulement sérialisé mais aussi échappé. pourquoi n'est-ce pas le cas avec \ n? – BabelFish