gpt4 book ai didi

c# - 在 silverlight 中加载文件

转载 作者:行者123 更新时间:2023-11-30 18:43:39 25 4
gpt4 key购买 nike

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

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

更新找到答案:

  • 我将我的文件作为“资源”(既不嵌入内容也不嵌入任何其他内容)
  • 像这样加载它:

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

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

现在,我还有一个问题要问。通过这样做,文件被添加到程序集(到 exe/dll)中,并使其变大一些。

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

谢谢,

风筝

最佳答案

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

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

您仍然使用 GetResourceStream 来访问它,但是 Url 变成了这样的:-

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

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

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

关于c# - 在 silverlight 中加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4054932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com