2011-07-28 14 views
3

Webプロジェクトで、アプリケーションをローカライズするためのリソースファイルを作成しました。そのため、Webアプリケーションには、ラベルやボタンなどの翻訳されたテキストがすべて含まれます。しかし、私は生成し、ユーザーに電子メールを送信するために使用するいくつかのバックエンドコードを持っており、それらの電子メールもローカライズしたいと思います。電子メールを送信するコードはWebプロジェクトとは別のアセンブリに入っていますので、このリソースファイルをアセンブリと共有する最良の方法は何ですか?私のWebプロジェクトのコードで別のアセンブリからのリソースファイルへのアクセス

私はこれをやっている:

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

ので、私は単にアセンブリコードでこれを行うことができます:

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

それは限り、正常に動作しますアセンブリは私のWebアプリケーションから呼び出されます...しかし、何らかの理由でWebベースではない別のアプリケーションからそのアセンブリのメソッドを呼び出す場合、HttpContextは存在せず、失敗します。私は2つの間でリソースを共有できるようにこれを行うより良い方法がありますか?

おかげでたくさん

答えて

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 %>" /> 
関連する問題