我一直在获得这样的资源对象:
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");
通过这种方式,如果资源文件发生变化,则可以在设计时轻松检测到这些术语。