我有一个带有Mvc区域的WebForms项目。

我在Global.asax.cs的Application_Start中有两个方法分别用于向Autofac Dependency Injection注册服务。

private void WebFormsContainer()
        {
            var webFormsContainer = new ContainerBuilder();

            webFormsContainer.RegisterAssemblyTypes(typeof(CompanyService).Assembly)
                .Where(s => s.Name.EndsWith("Service"))
                .AsImplementedInterfaces().InstancePerRequest();

            _containerProvider = new ContainerProvider(webFormsContainer.Build());
        }


并且,

private void MvcContainer()
        {
            var builder = new ContainerBuilder();

            builder.RegisterControllers(Assembly.GetExecutingAssembly());

            builder.RegisterAssemblyTypes(typeof(CompanyService).Assembly)
                .Where(s => s.Name.EndsWith("Service"))
                .AsImplementedInterfaces().InstancePerRequest();

            IContainer container = builder.Build();

            DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
        }


WebForms注入似乎可以正常工作,但是当我尝试应用程序的Mvc部分时出现错误;

没有为此对象定义无参数构造函数。

问题是如何在Webforms应用程序中为MVC区域设置Autofac?

最佳答案

我以前曾尝试过这篇文章的答案;
Autofac, MVC (with ActionFilters), Web.Forms - dependency resolution conflict,但是我必须尝试不正确,因为我重试了它并使它起作用。

关于c# - 具有Mvc区域和Autofac IoC的WebForms项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46497061/

10-10 03:05
查看更多