加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 使用DependencyResolver进行MVC 3的Controller实例化

发布时间:2020-12-16 06:46:33 所属栏目:asp.Net 来源:网络整理
导读:我正在使用MVC 3并在应用程序启动时使用以下代码… UnityContainer container = new UnityContainer();new UnityMappings(container);DependencyResolver.SetResolver(new UnityServiceLocator(container)); 现在,当应用程序运行时,我收到以下错误(但有时只
我正在使用MVC 3并在应用程序启动时使用以下代码…

UnityContainer container = new UnityContainer();

new UnityMappings(container);

DependencyResolver.SetResolver(new UnityServiceLocator(container));

现在,当应用程序运行时,我收到以下错误(但有时只是)…

Activation error occured while trying to get instance of type
IControllerFactory,key “”

有趣的是,如果我继续使用网络请求,网站将正常运行.

有任何想法吗?当这个工作正常时,我看不出我以前做的与以前有什么不同.

干杯,伊恩.

解决方法

MVC3要求的不仅仅是来自DependencyResolver的控制器.对于大多数人来说,如果DependencyResolver没有返回实例,MVC3会回退到默认实现.

在你的情况下,它会请求你的IoC容器不知道的IControllerFactory,并抛出一个由UnityServiceLocator实现捕获的异常,并返回null. MVC然后回退到默认控制器工厂.

与其他IoC容器不同,Unity不提供可选的TryResolve,因此不支持DependencyResolver的正确无异常实现.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读