4

すべてのアプリケーションには、構成可能ないくつかの設定が含まれています。これらの設定は、多かれ少なかれ次の 2 つのカテゴリに分類できます。

  1. アプリケーションの外観: 例として、ウィンドウの位置、ウィンドウのサイズ、ビューのデフォルト オプションなどがあります。
  2. ビジネス ルール: これらの設定は、ビジネス ロジックによって使用されます。

私が実装したアーキテクチャでは、View には独自のプロジェクト (WPF) があり、ViewModel には独自のプロジェクト (クラス ライブラリ) があります。論理的な観点から、View はビュー関連の設定の読み込みと保存を担当し、ViewModel はビジネス設定の読み込みと保存を担当する必要があります。

ビューの設定は扱いやすいです。設定 (app.config) で必要なプロパティを作成すると、簡単に読み込んで保存できます。

ただし、ViewModel は、View プロジェクトで利用可能な組み込みメカニズムを介して app.config 設定にアクセスできません。

私が最初に考えたのは、ViewModel から app.config の設定を読み書きできるヘルパー メソッドを作成することでした。あなたの意見は何ですか?私はここで物事を複雑にしていますか、それともこれはアプリケーション設定を処理するための受け入れ可能な方法ですか?

4

3 に答える 3

3

ここに行く方法は 3 つあります。

  1. System.Configuration.dll への参照を追加し、ViewModel プロジェクトでConfigurationManagerを通常どおり使用するようにします。

  2. ViewModel プロジェクトに、コンストラクターまたは依存関係反転の他の方法を介して必要な構成情報を要求させ、View プロジェクトにそれを渡させます。

  3. ViewModel と View をメイン アプリケーション プロジェクトに配置します。

個人的には、別のアセンブリにする必要がある何らかの理由がない限り、オプション 3 を使用します。それらを別々にする必要がある場合は、オプション 1 の方が簡単なので、オプション 1 をお勧めします。

于 2012-09-24T22:44:33.187 に答える
0

私はこのライブラリに非常に感銘を受けました: https://www.nuget.org/packages/UserSettingsApplied/ . 基本的に、ユーザーのローミング アプリの構成に必要なものを何の努力もせずにシリアル化できます。よく考えられ、よくテストされているようです。これにより、ビュー モデルは app.config の設定を簡単に保持できます。

参考までに、View プロジェクトが View Model を参照することはまったく問題ありません。それ以上に、それはほとんど必須であるため、ビューはビューモデルレイヤーを介してすべての永続化を行うことができます.

于 2017-11-24T01:52:17.080 に答える