C# の XmlSerializer を使用して xml ファイルにシリアル化するオブジェクトのリストに加えて、さらにいくつかの独立した要素 (主にテキスト ボックスからの文字列) を同じ xml に格納したいと考えています。
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ファイルへの書き込みは禁止されており、避けるべきではないでしょうか?