7

我正在尝试使用该Dependency.SetResolver方法在新应用程序上设置容器,并将 autofac 与 autofac mvc 5 集成一起使用。

问题是设置解析器似乎没有做任何事情。将始终使用默认解析器,并且始终需要默认构造函数。

有任何想法吗?

编辑 - global.asax.cs,我已将其简化为:

var b = new ContainerBuilder();  
b.RegisterType<UserInfo>().As<IUserSession>().InstancePerHttpRequest();  
var container = b.Build();  
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));

并在其构造函数中HomeController接受一个。IUserSession抛出的异常是“No parameterless constructor defined for this object." Thrown from "System.Web.Mvc.DefaultControllerActivator.Create"

4

1 回答 1

18

您忘记注册控制器:

b.RegisterControllers(typeof(MvcApplication).Assembly);

Autofac wiki页面上的更多信息

于 2013-11-12T15:15:49.947 回答