System.Runtime.Serialization ваш друг здесь, если вы решите перейти на XML.
В одном из моих тестовых приложений мне иногда нужно иметь возможность сериализовать объект как XML, чтобы я мог просматривать все это в автономном режиме. Вот фрагмент кода, который я использую (никоим образом не оптимизированный, просто быстро собрал один день, и он сработал так, как мне было нужно).
public static string ObjectToXml<T>(T objectToSerialise)
{
StringWriter Output = new StringWriter(new StringBuilder());
XmlSerializer xs = new XmlSerializer(objectToSerialise.GetType());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("MyNs", "http://www.someXmlNamespace/namespace1"); // add as many or few as you need
xs.Serialize(Output, objectToSerialise, ns);
return Output.ToString();
}
После этого тривиально вывести данные в файл.
Примечания :
Мне нужно было иметь возможность получать содержимое XML в виде строки, чтобы сохранить его одним из нескольких способов. Создать метод перехода на диск тоже будет легко, если это то, что вам нужно.
Хотя это работает для меня, вам, возможно, потребуется настроить его для удовлетворения собственных потребностей.