ネットワーク上の場所にある XML ファイルから映画のリストを読み取る WPF アプリケーションを作成しました。起動が遅い原因を調査し始めたところ、XmlSerializer には多くのオーバーヘッドがあることがわかりました。
プロジェクトを公開する前に、sgen を使用してアセンブリをビルドしましたが、現在、より良い解決策を検討しています。BinaryFormatter クラスを見てきましたが、XML ファイルは Linux サーバー上で実行されている PHP スクリプトによって作成されています。
XML ファイル リーダーを使用して自分でファイルをループする方がよいでしょうか、それともより良いオプションがありますか? 私はスピードを目指しているので、私の XmlSerializer を置き換える提案は大歓迎です。
ファイルを逆シリアル化するためのコードを次に示します。
public List<Movie> DeSerializeXmlObject(string filename)
{
List<Movie> movies;
Stream stream = File.Open(filename, FileMode.Open);
XmlSerializer s = new XmlSerializer(typeof(List<Movie>));
movies = (List<Movie>)s.Deserialize(stream);
stream.Close();
return movies;
}
ファイルの添付方法がわからなかったので、XML ファイルをペーストビンに貼り付けました。http://pastebin.com/Rxsy0R3c ありがとうベン