私はデータベースLINQでXMLを使って作業していて、シリアライザを扱うのが非常に難しいことがわかりました。XMLSerializerからXElement
データベースLINQには、XElement
を格納するフィールドが必要です。
多くのカスタマイズされた構造体クラスを持つ複雑なオブジェクトがあるので、XmlSerializerを使用してオブジェクトをシリアル化します。
ただし、シリアライザはファイル( "C:\ xxx \ xxx.xml")またはメモリストリームにのみシリアル化できます。
しかし、LINQを使用してデータベースに格納できるように、それをXElementに変換またはシリアル化するには?
そして逆の方法は?
XmlSerializer xs = new XmlSerializer(typeof(XElement));
using (MemoryStream ms = new MemoryStream())
{
xs.Serialize(ms, xml);
ms.Position = 0;
xs = new XmlSerializer(typeof(YourType));
object obj = xs.Deserialize(ms);
}
覚えておいてください! – bnieland