Внедрение зависимостей в модель с UNITY MVC 4 - PullRequest
0 голосов
/ 11 сентября 2018

Я нахожусь в проекте, который использует подход DDD.Мы используем контейнер IOC Unity MVC 4 для DI с ASP.NET MVC 4. Я создал статический класс, который реализует некоторые методы, которые были реализованы в классе ViewModel.Это точно не способ DDD, но мы находимся в конце спринта SCRUM и самого проекта.Проект не был создан мной, я просто сейчас оказываю некоторую поддержку.Когда я запускаю SONAR для качества кода, он говорит, что я должен реализовать DI.Проблема в том, что конструктор по умолчанию ViewModel инициализируется из класса контроллера без параметров.Но я реализовал DI в этом классе ViewModel.Я зарегистрировал его в файле загрузчика Unity в моем проекте презентации.Как я могу вызвать класс ViewModel сейчас, если его конструктор по умолчанию имеет частное свойство интерфейса Readyonly в параметре конструктора?Как я могу инициализировать класс ViewModel в контроллере?Должен ли я использовать инъекцию свойства?Если да, не могли бы вы показать мне какой-нибудь код и правильный способ его регистрации в файле загрузчика?

т.е.:

Просмотр модели:

public class MyViewModel
{
   private readyonly IMy My;

   public MyViewModel(IMy my)
   {
      My = my;
   }

}

Контроллер:

public class MyController 
{
  public ActionResult MyAction()
  {
     // This is the problem....
     MyViewModel myVm = new MyViewModel() ????
  }
}

Unity:

 container.RegisterType<IMy, My>();
...