在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
很简单,controller是工厂create出来的。注入进去没有问题,问题是用的cotroller都是create出来的,所以你注入的根本没调用到