C# 尝试通过资源管理器检索资源时缺少清单错误

C# 尝试通过资源管理器检索资源时缺少清单错误,c#,embedded-resource,C#,Embedded Resource,我在动态获取资源时遇到了一些问题,因为我遇到了“缺少清单”错误。我查找了一些可能的原因,并按照上面写的做了,但到目前为止没有任何效果 目前我有这样的情况: 我试图访问的resx文件是:“Resources/Messages.resx”(因此位于非标准文件夹中) 我使用的代码是: ResourceManager resourceManager = new ResourceManager("Resources.Messages", this.GetType().Assembly); resource

我在动态获取资源时遇到了一些问题,因为我遇到了“缺少清单”错误。我查找了一些可能的原因,并按照上面写的做了,但到目前为止没有任何效果

目前我有这样的情况: 我试图访问的resx文件是:“Resources/Messages.resx”(因此位于非标准文件夹中)

我使用的代码是:

ResourceManager resourceManager = new ResourceManager("Resources.Messages", this.GetType().Assembly);
resourceManager.GetString("ResourceText" + MessageType + "Subject")
messageType是字符串。在第二行,我得到了错误消息

资源文件的状态如下:

  • 构建Aciton:嵌入式资源
  • 自定义工具:PublicResXFileCodeGenerator
  • 访问修改器公共
resfile有两个变体:Messages.res和Messages.de.resx,每行具有相同的名称,并且具有相同的常规属性(“GetString”也会最终尝试访问正确的名称)


因此,我的问题是我哪里做错了,我能做些什么来纠正这个问题?

发现了问题。对于新的ResourceManager,不仅要提供ResourcesFile的命名空间,还要提供默认命名空间。因此,如果应用程序的默认命名空间为:MyApplication.MyServerApp,那么就不要使用“Resources.Messages”必须输入“MyApplication.MyServerApp.Resources.Messages”以生成以下正常工作的源代码:

ResourceManager resourceManager = new ResourceManager("MyApplication.MyServerApp.Resources.Messages", this.GetType().Assembly);
resourceManager.GetString("ResourceText" + MessageType + "Subject")