在silverlight中加载文件

时间:2010-10-29 18:51:23

标签: c# silverlight

我想在Silverlight应用程序中加载一个自定义文件作为资源文件,但FileStream不起作用(因为我必须保留在部分信任环境中)。

有加载我文件的解决方案吗? (它是二进制序列化数据)。

更新 找到答案:

  • 我将我的文件作为“资源”(不包含任何内容或其他内容)
  • 像这样加载:

    StreamResourceInfo info = Application.GetResourceStream(new Uri(@“/ Utilitaires; component / Resources /”+ name,UriKind.Relative));

然后使用“info.Stream”属性。

现在,我有另一个要求。通过这样做,文件被添加到程序集(到exe / dll),并使它更大。

但是由于这些数据需要与程序集同时加载,我应该将它们作为资源使用,还是使用其他方法分别加载它们? (以及该方法应该是什么?我需要它在本地和服务器上工作)。

谢谢,

风筝

1 个答案:

答案 0 :(得分:0)

由于在加载程序集的同时需要资源,因此将文件放在Xap之外的唯一原因是允许修改文件而不修改Xap。

我个人将文件包含为“内容”而不是“资源”。这意味着文件最终作为Xap中的条目(只是一个Zip文件)而不是在dll中。

您仍然使用GetResourceStream来访问它,但是Url会变成: -

new Uri(@"/Assets/" + name, UriKind.Relative)

如果Assets是您在项目中创建的用于存储其他文件的文件夹,则名称也应包含文件扩展名。

使用这种方法可以为您提供两全其美的体验。该文件包含在Xap中,但如果由于某种原因需要修改文件内容,则Xap可以作为Zip文件打开并替换文件。