我有一个我正在实施本地化的应用程序。
我现在需要动态引用资源文件中的名称。
假设我有一个名为Login.resx的资源文件,有许多字符串:foo =“hello”,bar =“cruel”和baz =“world”
通常,我会将其称为: 字符串结果= Login.foo; 和结果==“你好”;
我的问题是,在代码时,我不知道我是否想要引用foo,bar或baz - 我有一个包含“foo”,“bar”或“baz”的字符串。
我需要类似的东西:
登录[ “foo” 的];
有没有人知道是否有任何方法可以动态引用资源文件中的字符串?
答案 0 :(得分:20)
您需要为Login.resx
ResourceManager
var resman = new System.Resources.ResourceManager(
"RootNamespace.Login",
System.Reflection.Assembly.GetExecutingAssembly()
)
var text = resman.GetString("resname");
查看由IDE创建的资源文件的代码隐藏文件中生成的代码可能会有所帮助。这些文件基本上包含对内部资源管理器进行查询的每个资源的只读属性。
答案 1 :(得分:2)
如果您像我一样将资源文件放在App_GlobalResources文件夹中,则需要使用
全球:: System.Resources.ResourceManager temp = new 全球:: System.Resources.ResourceManager( “RootNamespace.Login” 全球:: System.Reflection.Assembly.Load( “App_GlobalResources文件”));
我花了一段时间才弄明白这一点。希望这会对某人有所帮助。 :)