Soit le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Class Program{
 
MemoryStream WriteName(Name name){
 
var ms = new MemoryStream();
 
var binary = XmlDictionaryWriter.CreateBinaryWriter(ms);
 
var ser = new DataContractSerializer(typeof(FullName));
 
ser.WriteObject(binary, name);
 
return ms;
 
}
}
J'ai lu l'explication que pour nous assurer que l'objet FullName est serializé vers l'objet de type MemoryStream ms,

c'est la méthode WriteEndElement qui convient le plus
binary.WriteEndElement();

Je ne comprends pas la différence entre la méthode WriteEndElement() et la méthode WriteEndDocument()dont voici les définitions:


méthode WriteEndDocument :
En cas de substitution dans une classe dérivée(cette méthode est héritée de XMLWriter), ferme les éléments ou attributs ouverts, et replace le writer à l'état Start.

méthode WriteEndElement :
En cas de substitution dans une classe dérivée(cette méthode est héritée de XMLWriter), ferme un élément et exécute un pop sur la portée espace de noms correspondante

Pourquoi l'une plus que l'autre méthode convient mieux pour s'assurer que la totalité de l'objet FullName a été serializée vers l'objet ms de type MemoryStream

Par ailleurs, si j'écrivais binary.Flush(), cela ne me permettrait-il pas également de s'assurer que la totalité de l'objet FullName est serializée?

Merci beaucoup de vos réponses sur ce point.

Cordialement.
new_wave