xsd.exe を使用して Class を生成する XML スキーマを取得しましたFooClass
。
ホストから xml リクエストを受信しています。これをディレクトリから取得し、 を使用しXmlSerializer.Deserialize()
て .xml のインスタンスを取得しますFooClass
。
さて、これは今まで完全に機能し、今でも機能していますが、突然、より大きな XML ファイル (約 300KB) を取得するようになり、時間がかかりすぎてDeserialize()
受け入れられません! 同じ XML ファイルの読み込みにXMLTextReader()
は数ミリ秒かかり、逆シリアル化にかかる時間は約 1 分 30 秒です。
そこで、XMLReader を使用して XML ファイルを読み取り、FooClass
自分でビルドしようと思いました。しかし、すべてのコードを作り直す前に、XmlSerializer.Deserialize()
より高速な使用方法があるかどうかお尋ねしたいと思います。
XMLSerializer Assembly がここで役立つかどうかはわかりません。
ここに、各ファイルのループで呼び出される私のコードがあります
using (MemoryStream ms = new MemoryStream(xmldata)
{
XmlSerializer sz = new XmlSerializer(typeof(FooClass));
foo = (FooClass)sz.Deserialize(ms);
}
前もってありがとう、AK