问题...

如果必须打开BinaryReader到文件,是否有比打开Stream到Resource更好的方法?

 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上只是为了看看我是否可以做得比流到资源更好。

最佳答案

好像您是将数据库作为资源嵌入-您是否尝试过将文件的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

关于c# - WP7上的BinaryReader和Stream性能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5972255/

10-13 06:55