在我的 MVC 2 项目中,我最初使用 Ninject 2 并编写了这个版本的 NinjectControllerFactory:
public class NinjectControllerFactory : DefaultControllerFactory
{
    private IKernel kernel = new StandardKernel(new HandiGamerServices());
    protected override IController GetControllerInstance(System.Web.Routing.RequestContext requestContext, Type controllerType)
    {
        try
        {
            if (controllerType == null)
            {
                return base.GetControllerInstance(requestContext, controllerType);
                // return null;
            }
        }
        catch (HttpException ex)
        {
            if (ex.GetHttpCode() == 404)
            {
                IController errorController = kernel.Get<ErrorController>();
                ((ErrorController)errorController).InvokeHttp404(requestContext.HttpContext);
                return errorController;
            }
            else
            {
                throw ex;
            }
        }
        return (IController)kernel.Get(controllerType);
    }
最重要的是检索我的 ErrorController,它允许我优雅地处理大量 HTTP 错误。
问题是我通过 Nuget 升级到 MVC 2 扩展,所以已经提供了 NinjectControllerFactory。是否可以使用我自己的 GetControllerInstance 覆盖?如果是这样,怎么做?