Заставить XDocument записывать в строку с кодировкой UTF-8

Я хочу иметь возможность записывать XML в строку с объявлением и в кодировке UTF-8. Это кажется очень сложным для выполнения.

Я немного читал и пробовал некоторые из популярных ответов на этот вопрос, но все они имеют проблемы. Мне удалось заставить это работать, добавив настройки XmlTextWriter ... Хотя это кажется ОЧЕНЬ неуклюжим!

MemoryStream ms = new MemoryStream();
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.UTF8;
settings.ConformanceLevel = ConformanceLevel.Document;
settings.Indent = true;
using (XmlWriter xw = XmlTextWriter.Create(ms, settings))
{
    xml.Save(xw);
    xw.Flush();

    StreamReader sr = new StreamReader(ms);
    ms.Seek(0, SeekOrigin.Begin);
    String blah = sr.ReadToEnd();
}
36
задан Peter 21 December 2011 в 00:38
поделиться