首页 新闻 会员 周边

为什么在ASP.NET MVC中,IOC容器不能注入到Controller类里面?

0
[已解决问题] 解决于 2010-11-30 17:16

配置了对象注入关系,而Controller里持有已配置关系的一个接口,为什么当Controller触发的时候,没法自动注入对象?

bugfly的主页 bugfly | 初学一级 | 园豆:10
提问于:2010-11-25 16:42
< >
分享
最佳答案
0

在mvc源码中看到defaultcontrollerfactory的方法getControllerInstance中使用

return (IController)Activator.CreateInstance(controllerType);

和Ioc没关系没法自动装配。

参考:http://www.cnblogs.com/zhuqil/archive/2010/07/27/you-have-to-knowextensibility-points-in-asp-net-mvc-controller-factory.html

HHSoft | 初学一级 |园豆:150 | 2010-11-26 11:20
合乎~
bugfly | 园豆:10 (初学一级) | 2010-11-30 17:16
其他回答(1)
0

很简单,controller是工厂create出来的。注入进去没有问题,问题是用的cotroller都是create出来的,所以你注入的根本没调用到

FlyDragon | 园豆:396 (菜鸟二级) | 2010-11-25 22:05
哈哈,基本正确,准确地说,Controller不是由IOC容器初始化的,没法加载注入关系,事实上,它是由Framework初始化出来的,解决办法是在初始化端强制Resolve。
支持(0) 反对(0) bugfly | 园豆:10 (初学一级) | 2010-11-25 22:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册