2011-07-28 65 views
3

我在Web項目中創建了一個資源文件來本地化應用程序。因此,它將包含Web應用程序中標籤和按鈕等的所有翻譯文本。不過,我也有一些後端代碼用於生成電子郵件並將其發送給我的用戶,我希望這些電子郵件也可以本地化。發送電子郵件的代碼與Web Project是分開的程序集,因此我想知道與程序集共享此資源文件的最佳方式是什麼?從單獨程序集訪問資源文件

在我的Web項目的代碼,我只是在做這樣的:

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

,所以我可以簡單地做到這一點的彙編代碼:

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

和罰款,只要將工作作爲程序集是從我的web應用程序調用的......但如果出於某種原因,我想從不基於web的其他應用程序調用該程序集的方法,那麼將不會有HttpContext,它會失敗。有沒有更好的推薦方式,這樣我可以分享兩者之間的資源?

非常感謝

回答

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 %>" />