0

XSD スキーマを使用して、受信した XML ファイルをシリアル化できることを知りませんでした。以前は XSD ファイルからクラスxsd.exeを生成してcsいましたが、現在はそのクラスを使用してクラス プロパティのデータを取得する必要がありますが、1 つ見逃しており、助けが必要です。

これはコードです:

private void ParseDataFromXmlDocument_UsingSerializerClass(XmlDocument doc)
{
XmlSerializer ser = new XmlSerializer(typeof(ClassFromXsd));

            string filename = Path.Combine("C:\\myxmls\\test", "xmlname.xml");

            ClassFromXsdmyClass = ser.Deserialize(new FileStream(filename, FileMode.Open)) as ClassFromXsd;

            if (myClass != null)
            {
                // to do
            }
...

ここでは、ドライブから XML ファイルを使用します。そして、渡したパラメーターからこの XmlDocument を使用したいのですが、このコードをドライブからの XML の代わりに doc を使用するように適応させるにはどうすればよいでしょうか?

4

1 に答える 1

2

XmlDocument を MemoryStream に書き込んでから、既に行ったようにそれを逆シリアル化できます。

XmlDocument doc = new XmlDocument();
ClassFromXsd obj = null;
using (var s = new MemoryStream())
{
    doc.Save(s);
    var ser = new XmlSerializer(typeof (ClassFromXsd));
    s.Seek(0, SeekOrigin.Begin);
    obj = (ClassFromXsd)ser.Deserialize(s);
}
于 2013-08-14T14:43:49.817 に答える