Tout en essayant de répondre à une autre question, j'étais sérialisé un objet C # à une chaîne XML. C'était étonnamment fort; C'était l'extrait de code le plus court que je pourrais proposer: Le résultat est correct: p> mais l'extrait est plus compliqué que Je pense que ça devrait être. Je ne peux pas croire que vous devez connaître l'encodage et le mémoire Mémoire pour cette tâche simple. P> existe-t-il un moyen plus court pour sérialiser un objet à une chaîne XML? P> P>
4 Réponses :
Écrire une méthode d'extension ou une classe d'emballage / fonction pour encapsuler l'extrait. P>
Cela ne le rend pas particulièrement plus simple - il suffit de déménager la complexité (bien que cela implique un niveau de réutilisation).
Un peu plus court: -)
var yourList = new List<int>() { 1, 2, 3 }; using (var stream = new MemoryStream()) { using (var writer = XmlWriter.Create(stream)) { new XmlSerializer(yourList.GetType()).Serialize(writer, yourList); var xmlEncodedList = Encoding.UTF8.GetString(stream.ToArray()); } }
Même plus court si vous ne faites pas getstringbuilder () code>
Merci, SQL Server a accepté uniquement la version UTF-8. Je suppose que c'est aussi simple que possible en c # ...
@Andomar: Je n'ai pas vu cette question auparavant ... vous pouvez éviter une partie de ce code à l'aide de ma classe UTF8StringWriter. Voir Stackoverflow.com/Questtions/3862063
Vous n'avez pas besoin du MemoryStream code>, utilisez simplement un
StringWriter code>:
Qui sera utf-16, pas utf-8
Tout simplement si vous souhaitez utiliser l'encodage UTF8, faites-le comme ça , puis utilisez stringwriterutf8 ingraissé de StringWriter comme celui-ci p>