1

私は MVC Web アプリケーションで Windsor Castle IoC を使用することに慣れているので、コンポーネントの登録とアプリケーションのブートストラップに少し慣れています。

私は今、最初の WPF アプリケーションを作成しようとしていますが、少し迷っています....

典型的な MVC プロジェクトでは、すべてのコンポーネントを Global.asax ファイルの Application_Start に登録します。
また、Global.asax では、次のようにします。

_container = new WindsorContainer();
var myControllerFactory = new MyControllerFactory(_container.Kernel);
ControllerBuilder.Current.SetControllerFactory(myControllerFactory);

MyControllerFactoryからの継承ではDefaultControllerFactory、与えられたコントローラーを解決するため、使用されているすべてのコントローラーの依存関係が自動的に解決されます。

WPF アプリケーションでこれを行うにはどうすればよいですか?
コンポーネントを登録するという名前のクラスを作成しましたが、コンポーネントを呼び出すたびに依存関係が自動的に解決されるのでContainerBootstrapper、これをどのように使用するのか疑問に思っています...MainWindow

4

1 に答える 1

2

MVC とは異なり、WPF はすぐに使える分離された UI 開発のためのフレームワークを提供しません。WPF の上にあり、さまざまな IoC コンテナーの統合や、WPF 開発で役立つその他の機能を提供するもの (MVVM パターンを実装するCaliburn.Microなど) がいくつかあります。

または、コンテナーを直接管理する必要があります。つまり、App.xaml.cs または MainWindow.xaml.cs でコンテナーをインスタンス化して初期化し、コンテナーの Resolve() 関数を使用して新しいオブジェクトを構築します。重要なアプリの場合は、おそらくこれをアプリのナビゲーション ルーチンに統合することをお勧めします。

于 2012-07-01T22:00:04.993 に答える