2

次のようなコンストラクターを使用したビューがあります。

MyView(MyViewModel viewModel)

そして、次のようなコンストラクターを持つビューモデル:

MyViewModel(RuntimeParameter runtimeParam, <design-time resolvable parameters>)

Castle Windsor の Typed Factory Facility 機能を使用してビュー ファクトリを作成し、呼び出してビューを作成できるようにしたいと考えています。

MyView view = factory.Create(runtimeParam);

Castle Windsor のドキュメントを使用して ViewModel ファクトリを作成できましたが View Factory を機能させることができません。View ファクトリに渡されたランタイム パラメータは、ViewModel に渡される必要があります。ウィンザーにそうするように指示する方法はありますか?

ビュー用とビューモデル用の2つのファクトリを使用できると思いますが、それは醜いようです...

4

1 に答える 1

1

試みている方法で、型付きファクトリの複数のレイヤーを介してパラメーターを渡すことはできません。最善の策は、ビューを ViewModel 型付きファクトリに依存させ、そのコンストラクタのファクトリから ViewModel を要求することだと思います (必要に応じて、ビューの別の型付きファクトリから呼び出すことができます)。

別の方法として、型指定されたファクトリを介して ViewModel を本当に解決する必要があるかどうかを検討してください。その RuntimeParameter は、コンテナーに登録されているサービスからフェッチできますか? 一般に、「デフォルト」の動作を機能させる方法を見つけられる場合は、型付きファクトリを回避しようとします。

于 2013-03-04T19:10:39.007 に答える