У меня есть файл 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
или нет.
Я понимаю, что удалил пространство имен, и это является причиной проблемы, но как я могу позволить запросам быть без пространств имен и сохранить мою возможность сериализовать их?