Это пример кода, чтобы продемонстрировать мой вопрос. Для простоты я удалил другие неуместные коды.В 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. Поэтому, пожалуйста, объясните это простыми словами. Благодарю.