.NET でオブジェクトを XML にシリアライズする方法
これは超有名。Web で調べるとすぐに出てくる。.NET でデータをいじる分散アプリを作る人であれば結構知っている。
なお、この方法ではクラスの public フィールド、または public プロパティしかシリアライズできないので注意。
private なフィールドを含めて内部データをそのままとっておける SoapFormatter や BinaryFormatter というのもあるが、SoapFormatter はジェネリックスや Hashtable のようなデータがある場合は使えず、BinaryFormatter はよくわからないバイナリデータがべろべろーと出てきて、他のアプリケーションで読めない。
public static byte[] ObjectToXml(object o, Type t) { MemoryStream ms = new MemoryStream(); XmlSerializer x = new XmlSerializer(t); x.Serialize(ms, o); return ms.ToArray(); }