Cannot pass parameters to controller constructor - Autofac MVC 5

早过忘川 提交于 2019-12-12 03:33:25

问题


I'm trying from 16 hours to fix one issue in my application. I've searched internet but couldn't find any solution. I'm using Onion Architecture with ASP.NET MVC. I cannot inject service into my controller.

Controller:

public class TestController : Controller
{
    private readonly IService<Customer> _service;
    public TestController(IService<Customer> service)
    {
        _service = service;
    }

    public async Task<ActionResult> Index()
    {
        var list = await _service.GetAllAsync();
        return View(list);
    }
}

IOC:

public class IocConfig
    {
        public static void RegisterDependencies()
        {
            var builder = new ContainerBuilder();
            const string nameOrConnectionString = "name=AppContext";
            builder.RegisterControllers(typeof(MvcApplication).Assembly);
            builder.RegisterModule<AutofacWebTypesModule>();
            builder.RegisterGeneric(typeof(EntityRepository<>)).As(typeof(IRepository<>)).InstancePerRequest();
            builder.RegisterGeneric(typeof(Service<>)).As(typeof(IService<>)).InstancePerRequest();
            builder.RegisterType(typeof(UnitOfWork)).As(typeof(IUnitOfWork)).InstancePerRequest();
            builder.Register<IEntitiesContext>(b =>
            {
                var logger = b.Resolve<ILogger>();
                var context = new AspnetIdentityWithOnionContext(nameOrConnectionString, logger);
                return context;
            }).InstancePerRequest();
            builder.Register(b => NLogLogger.Instance).SingleInstance();
            builder.RegisterModule(new IdentityModule());
                var container = builder.Build();
            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }
    }

When i run action method it gives

"No parameterless constructor defined for this object."

I'm using latest version of Autofac. Please guide me with this.

来源:https://stackoverflow.com/questions/30805382/cannot-pass-parameters-to-controller-constructor-autofac-mvc-5

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!