0
這是演示我的問題的示例代碼。爲了簡單起見,我刪除了其他不相關的代碼。在IoC(構造函數注入)中,什麼時候創建了注入構造函數的實例?
public class ViewModelLocator
{
static ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);
if (ViewModelBase.IsInDesignModeStatic)
{
SimpleIoc.Default.Register<IDataService, DesignDataService>();
}
else
{
SimpleIoc.Default.Register<IDataService, DataService>();
}
SimpleIoc.Default.Register<MainViewModel>();
}
public MainViewModel Main
{
get
{
return ServiceLocator.Current.GetInstance<MainViewModel>();
}
}
}
根據我在代碼理解以上,如果應用程序是在設計模式中,當一個方法/構造函數需要類型IDataService的參數,DesignDataService的實例被作爲參數傳遞否則DataService的實例。現在,我的問題是什麼時候創建了IDataService類型的實例? IDataService類型的對象是否有可能在其構造函數中有一個參數? PS:我是wpf,MVVM模式和Ioc的概念的新手。所以請簡單說明一下。謝謝。