问题......
如果您必须将BinaryReader打开到文件中,是否有更高效的方法来打开流到资源?
System.IO.Stream myFileStream = Application.GetResourceStream(new Uri @"/MyApp;component/sdb.data", UriKind.Relative)).Stream;
BinaryReader binaryReader = new BinaryReader(myFileStream);
所有其他的......
我正在为WP7应用使用Sterling数据库(codeplex)。该应用程序需要在程序集内部附带一个大型数据库。目前,我正在尝试使用Sterling的Restore()从包含以前保存的文件(Backup())创建数据库。目前,我正在获取备份文件并将其设置为应用中的“资源”,如上所示。 Sterling dtabase引擎需要BinaryReader通过Restore()加载数据。目前,恢复只需要太长时间。我在Sterling Discussions开始讨论,但是在Stack上发布,只是为了看看我是否能比资源流更好。
答案 0 :(得分:1)
看起来您将数据库作为资源嵌入 - 您是否尝试将文件上的Build Action属性设置为Content,然后像这样加载它:
System.IO.Stream myFileStream = Application.GetResourceStream(new Uri(@"/component/sdb.data", UriKind.Relative)).Stream;
虽然我自己没有尝试过,但使用Content over Resource显然会对图像产生性能影响,我认为,对于其他二进制文件:http://www.windowsphonegeek.com/tips/wp7-working-with-images-content-vs-resource-build-action