Dot-Net
ResourceManager 試圖載入 .resources 而不是 .resx 文件
我正在嘗試使用以下方法在我的 .net 網站中載入 resx 文件:
ResourceManager rm = new ResourceManager( "Project.Resource", Assembly.GetExecutingAssembly() );Resource.resx 文件位於文件夾 App_LocalResources 中,並設置為在建構時嵌入到程序集中。
當我嘗試使用以下方式訪問 resx 文件時:
rm.GetString( "key" );或者rm.GetString( "key", culture );我收到一條錯誤消息:
找不到適合指定區域性或中性區域性的任何資源。確保“Project.Resource.resources”在編譯時被正確嵌入或連結到程序集“Project”中,或者所有所需的附屬程序集都是可載入的並且是完全簽名的。
注意 .resources …關於這裡發生了什麼的任何想法?
要將 .resx 載入到 ResourceManager 中,您需要指定命名空間
var rm = new ResourceManager("Namespace.ResxName", Assembly.GetAssembly());或者,如果將託管資源編輯器中的訪問修飾符設置為內部或公共,則可以免費獲得 ResourceManager,之後 VS 將生成 ResxName.Designer.cs
var rm = ResxName.ResourceManager;
通過字元串讀取資源的方法非常簡單:
ResourceNamespace.ResxFileName.ResourceManager.GetString("ResourceKey")在不能使用“點表示法”的情況下(例如,當資源鍵保存在數據庫中時),它是一種簡潔而優雅的解決方案,用於通過鍵讀取資源。