Я знаю, что его спрашивали и отвечали раньше - причина, о которой я прошу, заключается в том, что (я думаю) я пробовал все предлагаемые решения этой проблемы, но до сих пор не могу решить Это.Autofac - Убедитесь, что контроллер имеет безкоммертный публичный конструктор
У меня есть проект ASP.NET Web API 2.0. У меня установлены Autofac, Autofac.Mvc5 и Autofac.WebApi2. Когда я пытаюсь вызвать контроллер API, я получаю следующее сообщение об ошибке:
An error occurred when trying to create a controller of type 'MyController'. Make sure that the controller has a parameterless public constructor.
В моем Global.asax
у меня есть вызов IocConfig.Config()
который я помещенный внутрь App_Start
:
public static class IocConfig
{
public static void Config()
{
var builder = new ContainerBuilder();
builder.RegisterType<MyLogger>().As<IMyLogger>();
builder.RegisterApiControllers(Assembly.GetCallingAssembly());
builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration);
WebApiApplication.Container = builder.Build();
DependencyResolver.SetResolver(
new AutofacDependencyResolver(WebApiApplication.Container));
GlobalConfiguration.Configuration.DependencyResolver =
new AutofacWebApiDependencyResolver(WebApiApplication.Container);
}
}
И это конструктор MyController
:
public MyController(IMyLogger logger)
Когда я пытаюсь вызвать его, я получаю указанную ошибку о конструкторе. Что мне не хватает?
Было ли это решить? У меня такая же проблема. Я использую Asp.Net Web api2.0 – Kanchana