Я пытаюсь быстро и правильно сериализовать объект XDocument
. Я попробовал несколько вещей, но это последний (нашел его here) кажется простым и понятным:Сериализация XDocument
StringBuilder b = new StringBuilder();
XmlWriterSettings sett = new XmlWriterSettings();
sett.Encoding = Encoding.UTF8;
XmlWriter xw = XmlWriter.Create(b, sett);
doc.Save(xw);
String r = b.ToString();
Однако, в конце концов, r
просто пустая строка. Я что-то упускаю? Почему так сложно правильно сериализовать объект XDocument
?
Неудобно то, что если я позвоню doc.ToString()
Я получаю красивую сериализованную XML-строку без объявления. Если я вызываю doc.ToString(true)
, я получаю пустую строку (doc.Declaration
).
'xw.Close()' может быть? Хотя использование инструкции 'using' было бы лучше. Это то, что на самом деле отсутствует в вашем коде. –
@ AndreiV да, это дает мне результаты, но полностью игнорирует настройку UTF8 и 'XDeclaration', давая мне (неправильный) UTF-16. –
Я не уверен, что там происходит с кодировкой. Попробуйте обернуть его в оператор 'using'. –