我只需要知道MVVM Light的SimpleIoC背後是什麼?是現有的(統一,溫莎城堡,StructureMap,MEF,也許是簡單的噴油器...)?或者MVVM Light的開發團隊實施它很簡單嗎?MVVM Light的SimpleIoC背後是什麼
有沒有辦法讓SimpleIoC與特定的IoC協同工作?或者我應該使用Service Locator?
謝謝
我只需要知道MVVM Light的SimpleIoC背後是什麼?是現有的(統一,溫莎城堡,StructureMap,MEF,也許是簡單的噴油器...)?或者MVVM Light的開發團隊實施它很簡單嗎?MVVM Light的SimpleIoC背後是什麼
有沒有辦法讓SimpleIoC與特定的IoC協同工作?或者我應該使用Service Locator?
謝謝
由於沒有人回答這個問題,我做了一個研究。我迫不及待地想知道SimpleIoC的背後,這個問題Laurent誰可以回答。
但是第二個(是否有一種方法可以使SimpleIoC與特定的IoC協同工作?還是應該使用Service Locator?)我現在可以回答它。
問題是,SimpleIoc.Default
是IServiceLocator
接口的實現,而MVVMLight Toolkit使用Service Locator模式工作。所以如果我們希望使用任何IoC庫,我們只需要實現IServiceLocator
接口,然後我們就可以使用它。
例如,使用統一的IoC:
public ViewModelLocator()
{
var container = new UnityContainer();
//ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
ServiceLocator.SetLocatorProvider(() => new UnityServiceLocator(container));
//If we wish use another IoC we must implement the IServiceLocator interface
////if (ViewModelBase.IsInDesignModeStatic)
////{
//// // Create design time view services and models
//// SimpleIoc.Default.Register<IDataService, DesignDataService>();
////}
////else
////{
//// // Create run time view services and models
//// SimpleIoc.Default.Register<IDataService, DataService>();
////}
container.RegisterType<MainViewModel>();
//SimpleIoc.Default.Register<MainViewModel>();
}
此代碼是ViewModelLocator的構造。 UnityServiceLocator類實現IServiceLocator接口...
有一個帖子顯示瞭如何更詳細地完成[這裏](http://www.codeproject.com/Tips/655515/Integrating-Unity-Container-與-MVVM-光框架原理)。但是IServiceLocator接口有點束縛。我想你必須走出去才能獲得團結的全部力量 – Corcus