2009-11-01 131 views
0

我已将一个名为language.resx的资源文件添加到我的App_GlobalResources文件夹中,该文件夹使我可以像App_GlobalResoureces.Language.MyString一样访问字符串。我如何使这种动态?所以如果我有一个名为ResourceID的字符串,我该如何从资源文件中提取正确的资源?如何在一个asp.net网络应用程序中使用动态本地化

到目前为止,我尝试这样做:

string s = "MyString"; 

System.Resources.ResourceManager = new System.Resources.ResourceManager("App_GlobalResources.Language", System.Reflection.Assembly.GetExecutingAssembly()); 
string lang = mngr.GetString(s); 

,但是这是行不通的(它说,它无法找到命名空间或东西)。

有人建议为此使用数据库,但我不想要这样,因为它只是我想翻译的几个枚举。

回答

1

如何:

string s = "MyString"; 
var mngr = new System.Resources.ResourceManager("Resources.Language", 
    System.Reflection.Assembly.Load("App_GlobalResources")); 
string lang = mngr.GetString(s); 
+0

嗨,穆罕默德,这很好,我发现了另一种解决方案(见上文),然后再看到你的。谢谢。 – Erik 2009-11-01 18:53:26

+0

如果您将其作为回答发布并标记,将会很好,或者如果达到相同标记,则会标记另一个。问候。 – Meligy 2010-01-02 23:45:53

0

它的尴尬简单。为什么这是非常简单的东西总是很难找到

正确的代码是:

App_GlobalResources.Language.ResourceManager.GetString("MyString"); 
0

这是由Visual Studio生成的代理代码。如果你想自己定位文件(我认为你的意思是动态的),你可以像在代码sinnpet aobe中那样做。其实,我通过复制资源文件属性的“获取”访问器的内容来获得此代码:)

相关问题