我有一个 Web 应用程序项目。我生成了 DLL 并将其导入到另一个项目中。我实现了 VirtualPathProvider
。
我关注了这个网站: http://support.microsoft.com/kb/910441/en-us?spid=8940&sid=global ,一切正常,直到我添加另一个网站管理员。
site_export.master
并将其构建操作更改为嵌入式资源。 GetManifestResourceStream()
当我加载 null
时返回 site_export.master
。 GetManifestResourceNames()
来检查 site_export.master
是否存在于 DLL 中,它确实存在。它在列表中。所有的 namespace 都匹配。我没有在这里列出 namespace 。 为什么
GetManifestResourceStream()
不能加载我的新 site_export.master
?它加载 site.master
就好了。我知道我的 DLL 已加载,因为我可以看到 DLL 中的其他文件。 最佳答案
请记住以下问题...
步骤 1. 将构建操作集设置为嵌入资源请参见
C#’s GetManifestResourceStream Gotcha
步骤 2. 使用 namespace.resourcename
参见 GetManifestResourceStream() returns null ?
实际上,如果访问另一个程序集中的私有(private)资源并且调用方没有带有 ReflectionPermission
标志的 ReflectionPermissionFlag.MemberAccess
,则此方法返回 null。
关于c# - 为什么在调用 GetManifestResourceNames 时,资源名称存在时 GetManifestResourceStream 返回 null?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10726857/