Tôi biết nó đã được hỏi và trả lời trước đó - lý do tôi hỏi là vì (tôi nghĩ) tôi đã thử tất cả các giải pháp được đề xuất cho vấn đề này nhưng vẫn không thể giải quyết nó.Autofac - Đảm bảo rằng bộ điều khiển có một hàm tạo công khai tham số
Tôi có dự án ASP.NET Web API 2.0. Tôi đã cài đặt các phụ thuộc Autofac, Autofac.Mvc5 và Autofac.WebApi2. Khi tôi cố gắng gọi một bộ điều khiển API tôi nhận được lỗi sau:
An error occurred when trying to create a controller of type 'MyController'. Make sure that the controller has a parameterless public constructor.
Trong Global.asax
của tôi, tôi có một cuộc gọi đến IocConfig.Config()
mà tôi đã đặt bên 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);
}
}
Và đây là các nhà xây dựng cho MyController
:
public MyController(IMyLogger logger)
Khi tôi cố gọi nó, tôi nhận được lỗi được chỉ định về hàm tạo. Tôi đang thiếu gì?
Đã được này giải quyết? Tôi gặp vấn đề tương tự. Tôi đang sử dụng Asp.Net Web api2.0 – Kanchana