我有一个 dll,其中包含一些 resx 文件作为本地化的 EmbeddedResources。该 dll 主要用于创建 ASP.NET 网站,并且运行良好。
但是当我在我的测试项目中使用 dll(基本上这只是另一个 dll)时,我无法访问附属程序集的内容,例如我无法访问我的消息的英文翻译。它只返回回退消息。
使用的代码:
ResourceManager _resourceManager = new ResourceManager(baseName, Assembly.GetExecutingAssembly());
_resourceManager.GetString(key, cultureInfo);
baseName 是资源的完全限定名称,例如:myNamespace.MyResourceName。
我在想,当项目是 dll 或网站时,dll 的加载是不同的,但我不知道如何正确加载它。
有人有想法或提示吗?
谢谢。
编辑:我有一些 resx 的 dll A:
- 消息.resx
- Messages.en.resx
- 消息.de.resx
- ETC...
在构建结束时,它会生成一些 dll:
- A.dll
- zh/A.resources.dll
- de/A.resources.dll
- ETC...
如果 dll A 被网站引用,则该网站可以访问本地化资源,例如 en 或 de 中的消息。但是,如果它是另一个 dll,比如我的单元测试 dll,它引用了 dll A,它总是返回的后备消息。