您好 我有一个名为X.Common.DLL的程序集。多语言应用程序有一些资源文件。我们说它是Language.resx Language.en-US.resx .... etc ....
我有一个Web应用程序,其中包含以上dll作为参考...
那么如何在我的Web应用程序标记方面使用此资源文件?
Text="<%$ Resources:Class, ResourceKey %>"
无效,因为“Class”名称在另一个程序集中......
答案 0 :(得分:3)
您可以轻松创建一个类似这样的包装类
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") %>
答案 1 :(得分:0)
您应该引用web.config中的其他程序集以在Web表单中公开其内容。 http://msdn.microsoft.com/en-us/library/ms164642.aspx
编辑:由于评论的更详细答案: 您应该完成webconfig的pages / namespaces部分,如下所示:
<pages>
<namespaces>
...
<add namespace="My.Fully.Qualified.Namespace"/>
</namespaces>
</pages>
当然也应该引用提供命名空间的程序集(项目引用,web.config的部分)
然后你应该可以写“&lt;%= MyResx.MyEntry%&gt;
之类的东西