DependencyResolver.SetResolver不起作用 [英] DependencyResolver.SetResolver Not working
问题描述
我正在尝试使用Dependency.SetResolver
方法并使用具有autofac mvc 5集成的autofac来在新应用程序上设置容器.
I'm trying to set the container on a new app using the Dependency.SetResolver
method and using autofac with autofac mvc 5 integration.
问题是设置解析器似乎没有任何作用.默认解析器将始终使用,并且始终期望使用默认构造函数.
The problem is that setting the resolver doesn't appear to do anything. The default resolver will always be used and will always expect a default constructor.
有什么想法吗?
编辑-global.asax.cs
,我将其简化为:
Edit - The global.asax.cs
, I've simplified it down to:
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"
And HomeController
takes an IUserSession
in its constructor. The exception thrown is "No parameterless constructor defined for this object." Thrown from "System.Web.Mvc.DefaultControllerActivator.Create"
推荐答案
您忘记注册控制器了
b.RegisterControllers(typeof(MvcApplication).Assembly);
有关Autofac的更多信息维基页面
More info on Autofac wiki page
这篇关于DependencyResolver.SetResolver不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!