C# ResourceManager未拾取正确的resx文件
我在获取正确的资源文件条目时遇到问题,需要一些帮助。。。这是我的设想 我有一系列项目,它们是遵循这种格式的大型报告解决方案的一部分 插件***报告C# ResourceManager未拾取正确的resx文件,c#,.net,localization,mef,resourcemanager,C#,.net,Localization,Mef,Resourcemanager,我在获取正确的资源文件条目时遇到问题,需要一些帮助。。。这是我的设想 我有一系列项目,它们是遵循这种格式的大型报告解决方案的一部分 插件***报告 参考(文件夹) DataAccessLayer(文件夹) 数据集(文件夹) 数据包装器(文件夹) 本地化(文件夹) *.cs 其中*是我要生成的报告的名称 *.cs有一个导出语句,因此我可以使用MEF获取它(不确定这是否相关,但认为值得一提)。*.cs中的命名空间是CompanyName.DataShaper.Plugin.*Report。由于项
- 参考(文件夹)
- DataAccessLayer(文件夹)
- 数据集(文件夹)
- 数据包装器(文件夹)
- 本地化(文件夹) *.cs
_resourceManager =
new ResourceManager("CompanyName.DataShaper.Plugin.*Report.Localization.*Report",
Assembly.GetExecutingAssembly());
在我的resx设计器文件中,我有以下内容
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CompanyName.DataShaper.Plugin.*Report.Localization.*Report", typeof(*Report).Assembly);
resourceMan = temp;
}
return resourceMan;
}
我对资源管理器的呼叫如下所示
string resourceString = _resourceManager.GetString(resourceKey, _currrentCultureInfo);
其中_currentCultureInfo是正确的CultureInfo对象
对于每个项目,我的本地化文件夹中有4个不同的resx文件(*****Report.resx、*****Report.fr-ca.resx、*****Report.en-gb.resx、*****Report.de-de.resx)
当我调用资源管理器时,我总是从.resx。。。无论传入调用的CultureInfo对象是什么,都不要使用任何其他语言文件。我搞砸了什么
-->快速更新我的原始问题,但这似乎与MEF有关。我用老式的方式(new*Report())实例化了我的类,并进行了本地化调用,结果很好好的,我解决了这个问题。。我得到了.resx文件,因为它确实嵌入到了主程序集中。其他文件将被构建到每种语言的单独DLL中,然后我需要将它们复制到构建聚合容器的同一文件夹中,然后我的资源管理器将查看所有语言。这是怎么回事*?你是否真的构建了附属组件?我有大约20个不同的项目,它们都遵循相同的命名约定。*只表示一个报表名称。例如,其中之一是TransactionReport.cs。。因此有一个TransactionReport.res、TransactionReport.en-gb.resx、Plugin.TransactionReport等。