Я пишу веб-api, используя инъекцию зависимостей, блок работы с помощью репозиториев и Autofac в качестве контейнера. Dependency получал инъекции отлично 24 часов назад, но вдруг, когда я начал работать сегодня я продолжал получать ошибкуWebApi DI Autofac - Убедитесь, что контроллер имеет безкоммертный публичный конструктор
«Сообщение»: «Произошла ошибка», «ExceptionMessage»: «Ошибка Произошла ошибка при попытке создать контроллер типа «SearchController» Убедитесь, что контроллер имеет без параметров открытого конструктора ",„ExceptionType..“: „System.InvalidOperationException“,
я включать свои подписи и как я я регистрирую типы и буду очень рад, если кто-то может указать, что такое mi ght будет неправильно с моим кодом.
На моем веб-контроллера апи, у меня есть
private IUnitOfWork<Listing> _unitOfWork = null;
public SearchController(IUnitOfWork<Listing> unitOfWork)
{
_unitOfWork = unitOfWork;
}
Единица работы принимает параметр универсального типа для создания хранилища.
В моем WebApiConfig.cs, я регистрация типов, как показано ниже
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>));
builder.RegisterGeneric(typeof(UnitOfWork<>)).As(typeof(IUnitOfWork<>)).InstancePerDependency();
builder.RegisterType(typeof(SearchController)).UsingConstructor(typeof(IUnitOfWork<Listing>));
Я регистрация SearchController использовать конструктор, который принимает в IUnitOfWork <>. Все это хорошо работало, прежде чем я добавил модульные тесты Mocked, но для некоторых целей я продолжаю получать эту ошибку. Я также зарегистрировал DependencyResolver
var container = builder.Build();
var resolver = new AutofacWebApiDependencyResolver(container);
config.DependencyResolver = resolver;
Али, я попробовал ваш пример, и я получаю ту же ошибку «общественного конструктора без параметров» для WebAPI. Это то же сообщение, если я использовал код MVC AutoFac. У меня это есть в приложениях MVC, но в убытке от этого. Есть ли другие направления, которыми вы можете поделиться? –