我正在使用第三方API和Castle Windsor的默認控制器工廠。不幸的是,這個第三方API有一些他們正在使用的控制器正在被Castle Windsor以外的其他實例化。所以基本上在我的方法中,我需要說,忽略這些控制器/路線,我該怎麼做?如何讓溫莎城堡忽略某些路線/控制器?
這裏是我廠:
public class WindsorControllerFactory : DefaultControllerFactory
{
private readonly IKernel _kernel;
public WindsorControllerFactory(IKernel kernel)
{
_kernel = kernel;
}
public override void ReleaseController(IController controller)
{
_kernel.ReleaseComponent(controller);
}
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
throw new HttpException(404, string.Format("The controller for path '{0}' could not be found.", requestContext.HttpContext.Request.Path));
return (IController)_kernel.Resolve(controllerType);
}
}
Castle Windsor ?? – inorganik
您可以在GetControllerInstance中添加一個支票,該支票按類型忽略控制器.. – stuartd