2011-10-02 46 views
1

基於我的previous question,看起來資源資源在我的項目中不起作用。因此,計劃#2是通過resx文件使用常規資源。基於密鑰返回資源

我的問題的核心是:是否可以編寫一個函數,它將接收一個字符串鍵,並返回該資源?我嘗試了這種反射,但我無法讓它工作。

下面是我希望如何工作的示例。假設我有一個Resources.resx文件,它有兩個文件資源:MainMapOverWorld。我想編寫工作的功能等:

string mainMapContent = getFromResources("MainMap"); // => returns Resources.MainMap 
string overWorldCOntent = getFromResoures("OverWOrld"); // => returns Resources.OverWorld 

我嘗試使用反射來創建Resources類的實例,但保釋出來,當我意識到構造函數是內部的,有沒有空的構造,我可以使用。

有沒有辦法寫這個getFromResources函數?我無法弄清楚。

注意:如果我能做到的話,我可能會把它放到一個庫中;它也需要與Silverlight運行時一起工作。

回答

2

通過代碼生成生成的強類型資源類基於無類型的ResourceManager類。你應該可以使用ResourceManager.GetObject

+0

謝謝,它的工作。唯一的技巧是構造函數,它採用資源持有者的類型。之後輕鬆微風。 – ashes999