2013-10-19 52 views
7

遇到需要根據代碼後面提供的密鑰訪問存儲在資源文件中的字符串值的情況。以編程方式從資源文件訪問值

我該怎麼做?

注意:資源文件,在我的解決方案Web項目,我想從我的Silverlight應用程序訪問存在..

回答

14

您可以使用ResourceManager類:

ResourceManager myManager = new ResourceManager(typeof(MyResource)); 
string myString = myManager.GetString("StringKey"); 
+0

上面是什麼'MyResource'? – Rohaan

+0

這是您的資源類名稱,例如'StringResources','Resource1'等等。基本上它是'res'文件的名字。 – Zbigniew

+0

您可能需要包含它('使用')或使用名稱空間的名稱,例如'MyApplication.Resource.MessagesResources' – Zbigniew

1

使用嘗試:

string resourceValue = HttpContext.GetGlobalResourceObject("resxFilename", "resourceKey").ToString(); 
+0

顯然Rohan要求不同的東西:「要求訪問存儲在資源文件**中的字符串值,基於**後面的代碼提供的密鑰」 – Zbigniew

1

您可以使用以下方式不需要創建ResourceManager實例。資源文件樂已經繼承了ResourceManager

string value = MyResource.ResourceManager.GetString("stringKey"); 

注:MyResource是共享的資源文件名稱。

+0

我的資源文件存在於我的解決方案的Web項目中,我想從Silverlight中訪問它項目(在同一解決方案中) – Rohaan

+1

如果要在更多項目中共享資源文件,則應將該資源文件保存爲常用程序集併爲兩者添加參考。 –

2

我通常訪問的資源像這樣

Resources.MyLocalised.CompanyName; 
+0

比GetString好很多 –

1

假設你的資源文件的名稱是「Resource.resx」,你想傳遞的關鍵動態然後,

using System.Resources; 
string resVal = Resource.ResourceManager.GetString(dynamicKeyVal); 

讓我知道如果它不起作用,我會努力並提供適當的解決方案。

相關問題