我编写了一个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 谢谢 本
答案 0 :(得分:0)
你很可能做错了什么。解析甚至1MB xml不会超过1秒。您是否愿意使用您尝试解析的XML文件发布序列化和反序列化代码?
编辑:对不起,我想我无法帮助你。您的代码和文件看起来没问题。我现在看到的唯一选项是在后台工作程序中延迟加载此文件,然后在GUI线程中设置电影。