Регистрация AccountController в Unity IoC - PullRequest
0 голосов
/ 11 февраля 2019

Контроллер учетных записей не регистрируется правильно

У меня есть приложение ASP.NET MVC с индивидуальными учетными записями пользователей, использующими Identity.В моем контроллере учетной записи у меня есть UserMappingService, который я хотел бы добавить.

Существует два конструктора AccountController, тот, который изначально был пустым конструктором, вызывает проблемы.Мне нужно внедрить UserMappingService здесь.Прежде чем я добавил Сервис в параметры конструктора, я смог заставить контроллер зарегистрировать пустой конструктор, добавив его в UnityConfig.cs

//parameterless constructor in AccountController.cs
public AccountController()
    {

    } 

// From UnityConfig.cs in RegisterTypes method
container.RegisterType<AccountController>(new InjectionConstructor());

. Проблема в том, что, как только я добавляю сервис какЯ получаю ошибкиконечно, (InjectionConstructor) подходит только для конструктора по умолчанию без параметров, но я не знаю, как еще зарегистрировать контроллер в этом случае.

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете указать тип зависимости следующим образом:

var ctr = new InjectionConstructor(typeof(IUserMappingService));
container.RegisterType<AccountController>(ctr);

Или вы можете пометить ваш конструктор с помощью InjectionConstructorAttribute:

[InjectionConstructor]
public AccountController(IUserMappingService mappingService)
{
     userMappingService = mappingService;
}
...