Как сериализовать XML, прочитанный с помощью XmlTextReader {Namespaces = false}? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть файл csproj, который я пересекаю и комментирую определенный узел в нем.Поскольку я хочу не указывать пространство имен повсеместно (запросы LINQ2XML поступают от потребителей моего класса, а они не хотят задавать пространства имен), я установил:

var xmlTextReader = new XmlTextReader(_path) {
    Namespaces = false // avoid that hassle...
};

Однако тогда я не могу вывести документ:

var xmlTextReader = new XmlTextReader(_path) {
    Namespaces = false // avoid that hassle...
};

XDocument doc = XDocument.Load(xmlTextReader, LoadOptions.SetLineInfo | LoadOptions.PreserveWhitespace);
xmlTextReader.Close();

Do_some_stuff_with_doc_like_run_queries_and_comment_certain_node(doc);

var flattenedXmlContent = doc.ToString(); // throws System.Xml.XmlException:
// 'The prefix '' cannot be redefined from '' to 'http://schemas.microsoft.com/developer/msbuild/2003' within the same start element tag.'

Console.WriteLine(flattenedXmlContent);

doc.ToString() выдает исключение, описанное в комментарии выше, я меняю doc или нет.

Я понимаю, что удалил пространство имен, и это является причиной проблемы, но как я могу позволить запросам быть без пространств имен и сохранить мою возможность сериализовать их?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...