シェルウィンドウといくつかのモジュールを持つ複合アプリケーションがあり、各モジュールは MEF (Microsfot Prism) を使用してシェルにロードされます。シェル自体にはデフォルトのリソース ファイル (Resource.resx) があり、Localilzation をサポートするために他の言語 (Resource.ar-SA.resx など) にも対応しています。
- Xamlの場合:使用しました
x:Static Resource.KeyName
- C#コードでは:
GetString(keyName, culture)
必要な文字列を取得するために使用していました。
ローカリゼーションをサポートするために、システムの現在のカルチャを取得し、必要な Resx ファイルをロードするコード行を追加しました。現在の文化を設定するため。
Resource.Culture =
new System.Globalization.CultureInfo(System.Globalization.CultureInfo.CurrentCulture.Name);
App.Xaml.cs で
これらはすべて完全に正常に機能します。
同様に、MEF を使用してロードされる各モジュールには、前述のようにリソース ファイルがあります。ただし、モジュールの場合、特定の言語ファイルの Xaml で定義されたリソース キーが機能しません。デフォルト(Resource.Resx)ファイルから常に値を取得します。ただし、ResourceManager クラスを使用するコードで使用されるキーはすべて正常に機能します。