如何从ASP.NET标记获取资源字符串?
嗨,我有一个叫做X.Common.DLL的程序集。 有一些资源文件的多语言应用程序。 让我们说它Language.resx Language.en-US.resx ....等....
我有一个Web应用程序,其中包含上面的dll作为参考...
那么如何在我的Web应用程序标记端使用这个资源文件呢?
Text="<%$ Resources:Class, ResourceKey %>"
由于“Class”名称位于另一个程序集中而无效...
你可以很容易地创建一个类似这样的包装类
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") %>
您应该在web.config中引用其他程序集以在Web表单中公开其内容。 http://msdn.microsoft.com/en-us/library/ms164642.aspx
编辑:由于下面的评论更详细的答案:你应该完成这样的webconfig的页面/命名空间部分:
<pages>
<namespaces>
...
<add namespace="My.Fully.Qualified.Namespace"/>
</namespaces>
</pages>
当然,提供名称空间的程序集也应该被引用(项目引用,web.config的部分)
那么你应该可以写下“<%= MyResx.MyEntry%>”之类的东西
链接地址: http://www.djcxy.com/p/4057.html