2

送信される電子メールの内容が.resxファイルに保存されるアプリケーションがあります。
これはASP.Netアプリケーションであり、.resxファイルは/App_GlobalResourcesにあります。

私が電子メールを送る必要があるとき、私はこれを使って読んでいます:

 HttpContext.GetGlobalResourceObject("MailContents", "EmailID").ToString

今、私は別のプロジェクト(ウェブサイトではない)からの同じ郵送方法を使用する必要があります。郵送方法は、ソリューション内のすべてのプロジェクトが共有するDLLにあります。

この他のプロジェクトでは、明らかにHttpContextがありません。

これらのリソースをどのように読むことができますか?

私の現在のアプローチは、Mailingクラス内で、HttpContext.Currentがnullかどうかを確認し、nullの場合は、別のメソッドを使用することです。
私が今見ている別の方法(これ以上良いものはないという事実に自分自身を辞任した後)は、app.configファイルに保存されているWebサイトの.resxファイルへのパスを取得し、何らかの方法でそのファイルを読み取ることです。
System.Resources.ResourceReaderを試し始めましたが、.resxファイルではなく.resourcesファイルが必要なようです。

4

3 に答える 3

3

私は自分の質問に答えたと思います...
ResXResourceReaderクラスがあります。現在のDLL参照に含まれていないWindowsフォーム名前空間にあるため、見つかりませんでした。

残念ながら、これでは結果を繰り返すことしかできないので、かわいいキャッシング(メモ化)を実装します...

于 2008-09-30T20:49:48.477 に答える
0

郵送方法は、ソリューション内のすべてのプロジェクトが共有する DLL にあります。

この他のプロジェクトでは、明らかに HttpContext がありません。

そうです。HttpContext は、クラス ライブラリが System.Web を参照している限り、Web サイトから呼び出されたすべての dll で使用できます。

于 2008-10-10T06:20:01.647 に答える
-1

リソースの配置に問題があります。

リソースはWebサイトに属しており、パラメーターによってメール送信方法に送信する必要があります。

または、リソースはメーリングAPI dllに属しているため、そこに保持する必要があります(.dllプロジェクトには.resxファイルも含めることができます)。そうすれば、特にdll自体にリソースを埋め込んだ場合、メール送信方法でリソースを見つけるのに問題はありません。

于 2008-09-30T20:47:21.697 に答える