В дополнение к списку объектов, которые я сериализую в XML-файл с помощью XmlSerializer C#, я хотел бы сохранить несколько независимых элементов (в основном строки из текстовых полей) в одном и том же XML.Объединение XmlSerializer и XmlWriter?
public static void SaveBehaviors(ObservableCollection<Param> listParams)
{
XmlSerializer _paramsSerializer = new XmlSerializer(listParams.GetType());
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
path += "\\test.xml";
using (TextWriter writeFileStream = new StreamWriter(path))
{
_paramsSerializer.Serialize(writeFileStream, listParams);
using (XmlWriter writer = XmlWriter.Create(writeFileStream))
{
writer.WriteStartElement("Foo"); //test entry...
writer.WriteAttributeString("Bar", "Some & value");
writer.WriteElementString("Nested", "data");
writer.WriteEndElement();
}
}
}
Однако десериализация «test.xml» приводит к ошибке из-за добавленного элемента. Я предполагаю, что запись в сериализованном XML-файле запрещена и ее следует избегать?
Я, конечно, второй, другие комментарии, что это менее целесообразно - смешивание сериализованных объектов и пользовательских xml заставляет вас нести ответственность за сохранение отслеживать, кто разбирает то, что может быстро стать гигантской болью –