我在Web项目中创建了一个资源文件来本地化应用程序。因此,它将包含Web App中标签和按钮等的所有翻译文本。但是我也有一些后端代码,我用它来生成和发送电子邮件给我的用户,我希望这些电子邮件也是本地化的。发送电子邮件的代码与Web Project分开组装,所以我想知道与程序集共享此资源文件的最佳方法是什么?
在我的Web项目代码中,我只是这样做:
HttpContext.GetGlobalResourceObject("Localization", "somekey").ToString();
所以我可以在汇编代码中执行此操作:
System.Web.HttpContext.GetGlobalResourceObject("Localization", "somekey").ToString();
只要从我的Web应用程序调用程序集就可以正常工作......但是如果由于某种原因我想从不基于Web的不同应用程序调用该程序集的方法那么就没有HttpContext和它会失败。是否有更好的推荐方法,这样我可以在两者之间共享资源?
非常感谢
答案 0 :(得分:1)
您可以构建 ExpressionBuilder 来访问其他程序集中的字符串。
文章.NET String Resources包含 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 %>" />