如何从网站Aspx访问外部资源

时间:2010-02-26 02:25:03

标签: asp.net vb.net resources globalization

我目前的解决方案包括几个类库和一个网站。我正在全球化应用程序,我意识到我的资源需要被所有项目访问,而不仅仅是网站,因此将我的资源放在App_GlobalResources文件夹中不起作用。

我将我的资源添加到我的类库中,现在我试图弄清楚访问资源的最佳方式来自我的标记。当我的资源位于App_GlobalResources文件夹中时,我可以使用如下表达式访问它们:

<$ Resources: MyApp.Name %>  for server controls

或者

<%=Resources.MyApp.Name %> for plain text

从我的网站aspx文件访问我的资源的最佳方法是什么,因为它们在类库DLL中?

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

我发现了一篇很棒的文章讨论了扩展Resource-Provider Model。它允许使用表达式来访问外部资源:

默认提供者模型(显式全局资源)的$ Resources表达式的语法如下。

<%$ Resources: [resourceType], [resourceKey] %>

配置ExternalResourceProviderFactory时,可以使用相同的表达式访问外部资源,并进行以下语法更改。

<%$ Resources: [assemblyName]|[resourceType], [resourceKey] %>

例如,要从CommonResources.dll程序集中检索资源,请从全局资源类型“CommonTerms”中使用以下显式表达式。

<asp:Label ID="labGlobalResource" runat="server" Text="<%$ Resources:CommonResources|CommonTerms, Hello %>" ></asp:Label>

答案 1 :(得分:0)

我使用的是Util类库,除了许多其他有用的类和函数之外,还包含带有公共共享函数的i18n类,该类根据其名称和LCID返回资源文件中资源的值(字符串)。 我在我的Web项目中添加了对该dll的引用,并且在需要的地方添加,在代码隐藏文件中为我写的标签添加:

 MyLabel.Text = i18n.GetResourceString("MyStringName",1033)

您可以找到我使用的方法的更详细说明here 我相信,通过提供的详细信息,您可以采用或调整我的解决方案。