2009-11-01 78 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中那樣做。其實,我通過複製資源文件屬性的「獲取」訪問器的內容來獲得此代碼:)

相關問題