[英]How can I retrieve an embedded xml resource?
我在我的类库中添加了一个XML文件作为嵌入式资源,方法是使用Visual Studio中的项目属性访问,然后使用Resources | 添加资源| 添加现有文件...
我试图使用以下代码访问该文件,但我不断返回null引用。 有人有主意吗?
var path = Server.MapPath("~/bin/MyAssembly.dll");
var assembly = Assembly.LoadFile(path);
var stream = assembly.GetManifestResourceStream("MyNamespace.filename.xml");
我发现在Visual Studio中使用项目属性对话框的“资源”选项卡要容易得多。 然后,您通过以下方式生成对资源的强类型引用:
Properties.Resources.Filename
GetManifestResourceStream的MSDN页面提供了以下注释:
如果访问另一个程序集中的私有资源并且调用者没有带有ReflectionPermissionFlag.MemberAccess标志的ReflectionPermission,则此方法返回空引用(在Visual Basic中为Nothing)。
您是否在组件中将资源标记为“公共”?
我发现这篇文章很好地解释了如何设置它: http : //www.devx.com/dotnet/Article/10831/1954
在这种情况下可能有帮助的一件事是使用不同的方法来确定嵌入资源的位置。
我个人更喜欢这种方法而不是使用“资源”选项卡,因为它允许我使用其他工具向项目添加资源以包含在编译中。 我不必使用此工具的GUI
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.