Я использую WPF с MVVM Light в своем проекте. У меня есть небольшой вопрос о SimpleIoC
контейнере и DI. Какой способ лучше использовать, или скажите мне, если мне не нужно использовать DI там.
Есть мой конструктор VM:
public MainViewModel(IDialogService dialogService, IChannelObserverService channelObserverService, IInternalBroadcastService internalBroadcastService,
IUserDataAccessService userDataAccessService, IUserService userService)
И регистрация SimpleIoC:
SimpleIoc.Default.Register<MainViewModel>(() => {
return new MainViewModel(SimpleIoc.Default.GetInstance<IDialogService>(),
SimpleIoc.Default.GetInstance<IChannelObserverService>(),
SimpleIoc.Default.GetInstance<IInternalBroadcastService>(),
SimpleIoc.Default.GetInstance<IUserDataAccessService>(),
SimpleIoc.Default.GetInstance<IUserService>()); });
Пожалуйста, скажите мне, мне нужно использовать DI там?
Сначала я использовал все сервисы, подобные этому:
public MainViewModel(){...}
User user = SimpleIoc.Default.GetInstance<IUserService>().GetCurrentLoggedUser();
или это:
private IDialogService dialogService;
public MainViewModel()
{
dialogService = = SimpleIoc.Default.GetInstance<IUserService>();
}
private void MyMethod()
{
dialogService.ShowQuestionDialog(abc,abc,abc);
}
Так что я не использовал DI, когда создавал свои View-модели.