protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType) { if (controllerType == null) { throw new HttpException(404, string.Format("创建Controller实例时控制器类型 controllerType 为空:{0}", requestContext.HttpContext.Request.Path)); } if (!typeof(IController).IsAssignableFrom(controllerType)) { throw new ArgumentException("创建Controller实例时传入类型不是IController类型", "controllerType"); } IServiceResolver resolver = IoCBundleActivator.ServiceResolver; if (resolver != null) { IController controller = resolver.Resolve(controllerType) as IController; if (controller != null) { controller = resolver.InjectProperties(controller); return(controller); } } return(base.GetControllerInstance(requestContext, controllerType)); }