由于WPF应用程序启动缓慢而取代XmlSerializer

时间:2010-10-23 03:19:55

标签: wpf startup xmlserializer

我编写了一个WPF应用程序,它从网络位置的XML文件中读取电影列表。当我开始调查慢启动时,结果发现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文件粘贴到pastebin上。 http://pastebin.com/Rxsy0R3c 谢谢 本

1 个答案:

答案 0 :(得分:0)

你很可能做错了什么。解析甚至1MB xml不会超过1秒。您是否愿意使用您尝试解析的XML文件发布序列化和反序列化代码?

编辑:对不起,我想我无法帮助你。您的代码和文件看起来没问题。我现在看到的唯一选项是在后台工作程序中延迟加载此文件,然后在GUI线程中设置电影。

相关问题