DependencyResolver.SetResolver不起作用 [英] DependencyResolver.SetResolver Not working

查看:182
本文介绍了DependencyResolver.SetResolver不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆