我有一个问题获得正确的资源文件条目并需要一些帮助...这是我的场景

我有一系列项目,这些项目是大型报告解决方案的一部分,遵循此格式

插件。****报告

  • 参考(文件夹)
  • DataAccesslayer(文件夹)
  • 数据集(文件夹)
  • datawrappers(文件夹)
  • 本地化(文件夹)

    *。CS

我要生成的报告的名称 *是

*.CS具有一个导出语句,因此我可以使用MEF接收(不确定这是否相关,但认为值得一提)。 *.cs中的名称空间是companyName.datashaper.plugin。 *报告。由于项目名称和文件的位置,我更改了每个项目的默认名称空间为companyName.datashaper.plugin。*报告(这只是插件。*在更改之前报告)。

现在解决这个问题。.在 *.cs内部,我正在实例化资源管理器。看起来像这样...

_resourceManager =
                new ResourceManager("CompanyName.DataShaper.Plugin.*Report.Localization.*Report",
                    Assembly.GetExecutingAssembly());

在我的Resx Designer文件中,我有以下...

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);

其中_currentcurtultureinfo是正确的cultureinfo对象。

我在每个项目的本地化文件夹中有4个不同的RESX文件,(**** report.resx,**** report.fr-ca.resx,**** report.en gb.resx,*** *report.de-de.resx)。

当我拨打资源管理器时,我总是从.Resx中获取条目...无论我传达的cultureInfo对象如何,从来没有任何其他语言文件。我弄乱了什么?

- >快速更新我最初的问题,但这确实与MEF有关。我实例化了我的班级以老式的方式(new *report()),并进行了本地化调用,并且可以正常工作

有帮助吗?

解决方案

好的,我发现了这一点。.我正在获取.RESX文件,因为它确实嵌入了主组件中。其他文件正在内置到每种语言的单独的DLL中,然后我需要将它们复制到与我从中构建聚合容器的同一文件夹中,然后我的资源管理器,然后看到所有语言。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top