我想在Silverlight应用程序中加载一个自定义文件作为资源文件,但FileStream不起作用(因为我必须保留在部分信任环境中)。
有加载我文件的解决方案吗? (它是二进制序列化数据)。
更新 找到答案:
像这样加载:
StreamResourceInfo info = Application.GetResourceStream(new Uri(@“/ Utilitaires; component / Resources /”+ name,UriKind.Relative));
然后使用“info.Stream”属性。
现在,我有另一个要求。通过这样做,文件被添加到程序集(到exe / dll),并使它更大。
但是由于这些数据需要与程序集同时加载,我应该将它们作为资源使用,还是使用其他方法分别加载它们? (以及该方法应该是什么?我需要它在本地和服务器上工作)。
谢谢,
风筝
答案 0 :(得分:0)
由于在加载程序集的同时需要资源,因此将文件放在Xap之外的唯一原因是允许修改文件而不修改Xap。
我个人将文件包含为“内容”而不是“资源”。这意味着文件最终作为Xap中的条目(只是一个Zip文件)而不是在dll中。
您仍然使用GetResourceStream
来访问它,但是Url会变成: -
new Uri(@"/Assets/" + name, UriKind.Relative)
如果Assets是您在项目中创建的用于存储其他文件的文件夹,则名称也应包含文件扩展名。
使用这种方法可以为您提供两全其美的体验。该文件包含在Xap中,但如果由于某种原因需要修改文件内容,则Xap可以作为Zip文件打开并替换文件。