私は IoC を初めて使用し、それを適用する際のベスト プラクティスに従おうとしています。変更する必要があるオブジェクトの注入を受け入れる新しい EditViewModel を作成する場所から ListViewModel があります。
ソリューションは、このオブジェクトを含むメッセージを IoC コンテナーに送信し、それを EditViewModel に渡すことができると考えました。
私はそれを行うことができますか?もっと良い方法はありますか?
どうもありがとうございました!
私は IoC を初めて使用し、それを適用する際のベスト プラクティスに従おうとしています。変更する必要があるオブジェクトの注入を受け入れる新しい EditViewModel を作成する場所から ListViewModel があります。
ソリューションは、このオブジェクトを含むメッセージを IoC コンテナーに送信し、それを EditViewModel に渡すことができると考えました。
私はそれを行うことができますか?もっと良い方法はありますか?
どうもありがとうございました!
ビュー モデルで他のビュー モデルを作成する場合は、ビュー モデル ファクトリを作成します。このビュー モデルファクトリListViewModel
を依存関係として (たとえば、コンストラクター インジェクションを介して) 取得し、編集ビュー モデルを作成する場合は、次のようにします。
var editViewModel = this.EditViewModelFactory.Create(modelToEdit);
また
var editViewModel = this.EditViewModelFactory.Create();
editViewModel.SetModel(modelToEdit);
編集ビュー モデル ファクトリを IoC コンテナー経由で解決する必要があります。Castle Windsor や Ninject などのコンテナーでは、自動工場登録が可能です。この場合、ファクトリのインターフェイスを定義するだけで、コンテナは実際にこのインターフェイスを実装する型をインスタンス化します。
アプリケーションがメディエーターを介してコンテナーと通信することは確かに望ましくありません。