从不同的程序集访问资源文件

3
我创建了一个资源文件来本地化应用程序,以包含 Web 应用程序中标签、按钮等的所有已翻译文本。然而,我还有一些后端代码用于生成和发送电子邮件给我的用户,并且我希望这些电子邮件也可以本地化。发送邮件的代码位于与 Web 项目不同的程序集中,因此我想知道共享此资源文件的最佳方法是什么?
在我的 Web 项目代码中,我只需执行以下操作:
HttpContext.GetGlobalResourceObject("Localization", "somekey").ToString();

所以我可以在汇编代码中简单地这样做:

System.Web.HttpContext.GetGlobalResourceObject("Localization", "somekey").ToString();

只要该程序集从我的 Web 应用程序中调用,那么它就可以正常工作...但是,如果出于任何原因,我想从一个非 Web 应用程序调用该程序集的方法,则没有 HttpContext,并且它将失败。有没有更好的推荐方法,这样我就可以在两者之间共享资源? 非常感谢。
1个回答

1

您可以构建一个ExpressionBuilder来访问另一个程序集中的字符串。

文章.NET字符串资源包括类StringExpressionBuilder,其中包含表达式字符串:

<asp:Label ID="AppTextLabel" runat="server" 
    Text="<%$ Strings:MyCompany.MyApp.MyStrings, AppText %>" />
<asp:Label ID="LibTextLabel" runat="server" 
    Text="<%$ Strings:MyCompany.MyLib.MyStrings, LibText %>" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接