0

私は一般的なローカリゼーションにあまり精通しておらず、MicrosoftEnterpriseLibraryを初めて使用します。ローカライズされたリソースを作成し、それを例外管理で使用するにはどうすればよいですか?

ポリシーによって例外が処理されたときにわかりやすいエラーメッセージをスローするように置換ハンドラーを設定しました。メッセージリソース名とメッセージリソースタイプを指定するためのフィールドがあります。私はこれらの分野で何が起こっているのか分かりません。例はまったく見つかりません。

4

2 に答える 2

1

Designer ファイルを手動で編集する必要はありません。実際、そうすべきではありません。

私は VS 2010 と C# を使用していますが、概念は VS 2012 と VB で同じでなければなりません。

次のリンクは、あなたの答えに加えて、これを理解するのに非常に役立ちました。

http://odetocode.com/blogs/scott/archive/2009/07/16/resource-files-and-asp-net-mvc-projects.aspx

(App_GlobalResources に関する彼の警告は無視してかまいません。そこに私の Exceptions.resx ファイルがあり、これでうまくいきます。)

  1. Enterprise Library Configuration ツールが閉じていることを確認します。
  2. Designer.vb (または Designer.cs) ファイルを開いて、変更が行われたことを確認します。
  3. .resx ファイルを右クリックし、[プロパティ] を選択します。
  4. Build ActionEmbedded Resourceに変更します。
  5. カスタム ツールPublicResXFileCodeGeneratorに変更します。これにより、クラスが内部 (または VB の Friend) ではなく、パブリックとして生成されることが保証されます。このプロパティをクリックして別の場所に移動すると、リソース クラスが Designer ファイルで public として定義されていることがわかります。
  6. Custom Tool Namespaceを意味のあるもの、つまり<ApplicationName>.Resourcesに設定します。Designer ファイルで名前空間が変更されていることを確認します。
  7. プロジェクトをビルドして、アセンブリの新しいバージョンを取得します。
  8. 構成ツールで EntLib 構成ファイルを編集し、[例外処理設定] を展開してから、構成するラップまたは置換ハンドラーを展開します。
  9. [メッセージ リソース タイプ]フィールドの末尾にある省略記号 (...) をクリックします。これにより、タイプ ブラウザが表示されます。[ファイルから追加] をクリックし、プロジェクトの bin フォルダーを参照して、プロジェクトのメイン アセンブリを選択します。ロードされたアセンブリに型が表示されます。
  10. アセンブリを展開して上で入力した名前空間を見つけ、それを展開して、例外メッセージ用に作成された型を選択し、[OK] をクリックします。
  11. メッセージ リソース名を、この例外のメッセージを保持するリソース ファイル内のキーに設定します。
于 2013-03-26T18:41:46.680 に答える
0

私はこれを理解しました。

他のローカリゼーションと同様に、標準リソースを .resx ファイルに追加します。私の問題は、リソース タイプとリソース名を Enterprise Library の構成インターフェイスの置換ハンドラーに追加しようとしたときに、追加するタイプがアセンブリに含まれていなかったことです。

問題は 2 点です。VB.Net を使用して Visual Studio 2012 で .resx を作成すると、名前空間として My.Resources が使用されます。My.[FolderName] かもしれませんが、わかりません。もう 1 つの問題は、クラスが Public ではなく Friend として作成されることです。

プロパティの名前空間を変更し、.vb ファイルで Friend を Public に手動で変更する必要がありました。コードが再生成されるため、新しいリソースを追加するたびに元に戻りますが、少なくとも今は機能させることができます。

于 2012-09-18T15:54:02.997 に答える