我有一个 XML 文件作为我的 Silverlight 4.0 项目的一部分,我想在运行时访问它。我将文件保存在名为 Resources 的目录中,其中 Build Action 设置为“Content”,Copy to Output Directory 设置为“Do not copy”。如果我解压缩 XAP 文件,我会在我期望的位置看到 XML 文件,但我不确定如何从代码中引用它。我目前有以下内容:
Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(@"/AssemblyName;component/Resources/MyFile.xml")
不幸的是,运行上面的代码后stream为空。除了上面提到的路径,我还尝试了“/Resources/MyFile.xml”、“/MyFile.xml”和“MyFile.xml”,但它们都遇到了相同的行为。
访问作为资源嵌入到 Silverlight 应用程序中的 XML 文件的正确方法是什么?
最佳答案
具有构建操作“Content”的资源只是嵌入到 xap 文件中,具有与应用程序相同的相对目录结构。它不会作为资源嵌入程序集中。
当设置为构建操作“Content”时,您应该能够使用类似(或任何适合您需要的方式)加载文件:
XElement.Load(<relative directory>/<file>)
您当前使用的方法(使用资源流)适用于嵌入式资源(其构建操作设置为“资源”)。对于那些,虽然我还没有尝试过你的方法是否有效,但通常你会使用
获得资源Application.GetResourceStream
关于c# - 在运行时访问资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5330936/