2012-06-30 66 views
1

我習慣於在MVC Web應用程序中使用Windsor Castle IoC,所以我對註冊組件和引導應用程序有點熟悉。在WPF應用程序中引導溫莎城堡IoC

現在我想創建我的第一個WPF應用程序,我有點失去了....

在一個典型的MVC項目,我將我的註冊中的Application_Start所有組件在Global.asax文件。
此外,在Global.asax我會做這樣的事情:

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

MyControllerFactoryDefaultControllerFactory繼承我會解決給我的控制器,因此被用於將有它們的依賴所有控制器解決自動。

我怎麼能在WPF應用程序中做到這一點?
我創建了一個名爲ContainerBootstrapper類註冊我的部件,現在我想知道我如何使用這在我MainWindow所以每次我打電話的組成部分,它的依賴關係自動解決...

回答

2

與MVC,WPF沒有提供開箱即用的UI開發框架。有幾個在那裏(如實現MVVM模式的Caliburn.Micro),它們位於WPF之上,併爲各種IoC容器提供集成以及可能在WPF開發中發現的其他功能。

或者,您將需要直接管理容器。即在App.xaml.cs或MainWindow.xaml.cs中實例化和初始化容器,並通過你的容器的Resolve()函數確保新建對象。如果它是一個非平凡的應用程序,您可能會想要將其整合到您的應用程序的導航例程中。