将资源文件用于语言之外的其他内容

时间:2015-04-28 09:45:06

标签: c# asp.net-mvc resources globalization

我正在开发一个MVC应用程序,它实际上是一个中间件,可以提供外部BPM解决方案的管理和报告。

系统的用户并非全部用于相同的业务功能,并且可能将字段称为不同的事物(例如,部门A将客户端称为客户端,而部门B将其称为潜在客户)。有没有办法可以获得

的资源文件
  • Resources.divA.resx
  • Resources.divB.resx
  • Resources.divC.resx

从我的Google搜索,它似乎只能用于本地化。

1 个答案:

答案 0 :(得分:2)

您可以使用ResourceManager课程来帮助解决此问题。

向项目添加一些资源时,IDE会自动将Resources.Designer.cs文件添加到项目中以管理资源。生成的代码如下所示:

[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
    get {
        if (object.ReferenceEquals(resourceMan, null)) {
            global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AssemblyName.Properties.Resources", typeof(Resources).Assembly);
            resourceMan = temp;
        }
        return resourceMan;
    }
}

这使用the ResourceManager constructor that looks up resources based on a combination of a root name and the current locale

您可以自己编写类似的代码,但根据资源是用于A,B还是C来计算根名称。所以你会称之为" AssemblyName.Resources.divA"而不是" AssemblyName.Properties.Resources"。

然后,您还可以为每种其他支持的语言提供特定版本,并且它们将自动加载(如果存在)当前文化。这就是IDE管理资源的工作方式。