通过强类型键获取资源对象

时间:2016-02-15 22:13:51

标签: c# localization resources resx

我一直在获得这样的资源对象:

    public string GetLocalizedTerm(Type resource, string key, string culture)
    {
        System.Resources.ResourceManager rm = new System.Resources.ResourceManager(resource);
        return rm.GetString(key, culture);
    }

    //tests
    string valueInEnglish = this.GetLocalizedTerm(typeof(LocalizedStrings), "ProductNumber", "en");
    string valueInGerman = this.GetLocalizedTerm(typeof(LocalizedStrings), "ProductNumber", "de");

运行良好,但我们开始对资源文件resx进行一些更改,因此使用键作为字符串查找应用程序中的所有术语会更复杂。

有没有办法传递密钥而不是字符串,但是它是强类型的形式?

我的意思是这样的:

    public string GetLocalizedTerm(Type resource, string key, string culture)
    {
        System.Resources.ResourceManager rm = new System.Resources.ResourceManager(resource);
        return rm.GetString(key, culture);
    }

    // Resources.Localization.LocalizedStrings 
    //tests
    string valueInEnglish = this.GetLocalizedTerm(typeof(LocalizedStrings), Resources.Localization.LocalizedStrings.ProductNumber, "en");
    string valueInGerman = this.GetLocalizedTerm(typeof(LocalizedStrings), Resources.Localization.LocalizedStrings.ProductNumber, "de");

通过这种方式,如果资源文件发生变化,则可以在设计时轻松检测到这些术语。

0 个答案:

没有答案