2

MVVM と Prism を使用して c# WPF で構築された 3 層のエンタープライズ アプリケーションで、「ローカリゼーションとグローバリゼーション」をどこに配置しますか? msdn (http://msdn.microsoft.com/en-us/library/ee658124.aspx) で説明されているパターンのように構築されたアプリケーションでは、ローカリゼーションのロジックをどのレイヤーに配置しますか? どのようなアプローチを使用しますか (resx ファイル、db...)?

4

3 に答える 3

1

resxエンタープライズ アプリケーションでこれにファイルを使用しました。Resourcesそれらは、複数のユーザー インターフェイスで共有できるように、独自のプロジェクトに配置されました。

Microsoft がこれをどのように機能させることを意図したかについて読む価値があります。

http://msdn.microsoft.com/en-us/library/c6zyy3s9%28v=vs.100%29.aspx

于 2012-11-06T21:06:46.580 に答える
0

DB ローカリゼーション マッピングを使用することをお勧めします。この方法では、ローカリゼーションが変更されるたびにアプリケーションを再コンパイルする必要がありません。

于 2012-11-06T21:01:47.140 に答える
0

Resx ファイル

しかし、これは些細な問題ではなく、標準的なアプローチはありません。主要なものは次のとおりです。

  1. WPF リソースの使用
  2. wpf の Locbaml ツールを使用する
  3. RESX ファイルを xaml 静的文字列として使用する
  4. 拡張子付きの RESX ファイルを使用する

推奨される参考文献: Sacha BarberJosh Smith、およびResX

私の好みは (3) と (4) の組み合わせを使用することですが、拡張機能のコードを少し変更する必要がありました。だから私は通常持っています

  1. ビューごとに 1 つの Resx ファイルのプロジェクト (MyApp.Presentation.Resources)
  2. Resx ファイルのプロジェクト (MyApp.Domain.Resources)、列挙型ごとに 1 つ、標準コマンド
  3. 必要に応じて MyApp.Domain.Resources 列挙型を参照するビュー モデル (MyApp.ViewModels) のプロジェクト
  4. MyApp.Presentation.Resources と私のバージョンの ResxExtension.dll を参照するコントロールとビューのプロジェクト (MyApp.Wpf.ControlLib)。

HTH、
ベリル

于 2012-11-06T21:19:19.833 に答える