你好
我有一个名为X.Common.DLL的程序集。有一些用于多语言应用程序的资源文件。假设它是Language.resx Language.en-US.resx .... etc...。

我有一个网络应用程序,其中包含上面的dll作为引用...

那么,如何在我的Web应用程序标记端使用此资源文件?
Text="<%$ Resources:Class, ResourceKey %>"无效,因为“类”名称在另一个程序集中...

最佳答案

您可以轻松创建一个类似这样的包装器类

public class ResourceWrapper
{
     private ResourceManager resourceManager;

     public ResourceWrapper()
     {
         resourceManager = new ResourceManager("Namespace.Common", Assembly.Load("x.common"))
     }

     public string String(string resourceKey)
     {
         return ResourceManager.GetString(resourceKey);
     }
 }

有时,为新的ResourceManager(...)的第一个参数找到正确的名称可能会有些棘手。
为了使您自己更轻松,您可以这样调用:
Assembly.Load("x.common").GetManifestResourceNames() and check the returned results.

如果创建静态包装器,则可以使资源调用代码像下面这样简单:
<%= Resource.String("MyResourceKey") %>

10-05 19:23