所以,我有一個dll,其中包含一些resx文件作爲用於本地化的EmbeddedResources。 該dll主要用於創建ASP.NET網站,它的工作正常。使用來自另一個DLL的衛星程序集
但是,當我在我的測試項目中使用dll(基本上這只是另一個dll)時,我無法訪問衛星程序集內容,例如我無法訪問我的消息的英文翻譯。它僅返回回退消息。使用
代碼:
ResourceManager _resourceManager = new ResourceManager(baseName, Assembly.GetExecutingAssembly());
_resourceManager.GetString(key, cultureInfo);
基本名稱是資源的完全合格的名稱,例如:myNamespace.MyResourceName。
我在想這是不同的dll的加載,當項目是一個dll或網站,但我不知道如何正確加載它。
任何人有想法或建議嗎?
謝謝。
編輯: 我DLL中的一些RESX:
- Messages.resx
- Messages.en.resx
- Messages.de.resx
- 等...
在構建結束時,它會生成一些dll:
- A.DLL
- EN/A.resources.dll
- 德/ A.resources.dll
- 等...
如果DLL A被網站引用,該網站可以訪問本地化資源,例如en或de中的消息。 但是,如果它是另一個DLL像我的單元測試DLL引用的DLL A,它總是回退的消息。
什麼是'baseName'設置爲? – OffHeGoes
這是資源的全限定名稱,如MyNamespace.MyResourceName。 –