Я изменил свой WindsorControllerFactory для выдачи HttpException 404, когда запрошенный контроллер не существует
, но я не уверен, что это хороший способ сделать это, кто-нибудь знает, может ли быть какой-либопроблемы с этим?
public class WindsorControllerFactory : DefaultControllerFactory
{
readonly IWindsorContainer container;
public WindsorControllerFactory(IWindsorContainer container)
{
this.container = container;
var controllerTypes =
from t in Assembly.GetExecutingAssembly().GetTypes()
where typeof(IController).IsAssignableFrom(t)
select t;
foreach (var t in controllerTypes)
container.Register(Component.For(t).LifeStyle.Transient);
}
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
//if (controllerType == null) return null;
if (controllerType == null) throw new HttpException(404, "page not found");
return (IController)container.Resolve(controllerType);
}
}