我有一个带有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/