бросить 404, когда запрошенный URL / контроллер не существует - PullRequest
0 голосов
/ 03 февраля 2012

Я изменил свой 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);
    }
}

1 Ответ

1 голос
/ 08 февраля 2012

Как всегда хорошее место для такого рода вещей можно найти в Виндзорской вики. См. http://stw.castleproject.org/Windsor.Windsor-tutorial-part-two-plugging-Windsor-in.ashx

...