在路由调用之前,在钩子中访问Nancy.net中的路由参数

时间:2015-08-19 08:27:05

标签: nancy

我的引导程序内部有:

protected override void ApplicationStartup(Nancy.TinyIoc.TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines) {
    base.ApplicationStartup(container, pipelines);
    pipelines.BeforeRequest.AddItemToStartOfPipeline (ctx =>
        {
            var parameters = ctx.Parameters;
            var resolver = ctx.ResolvedRoute;
            return null;
        });
}

不幸的是,似乎在对“http://localhost:3579/thingy/123”这样的网址发出请求时,其匹配路由“/ thingy / {thingyId}”ctx.Parameters和ctx.ResolvedRoute都为空,即使在AddItemToEndOfPipeline中也是如此。

不要问我为什么,但我需要在许多不同的子路由之前使用这个路由参数进行摆弄,但找不到访问它的方法。有人知道吗?

1 个答案:

答案 0 :(得分:2)

我做到了:)

protected override void ApplicationStartup(Nancy.TinyIoc.TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines) {
    base.ApplicationStartup(container, pipelines);
    pipelines.BeforeRequest.AddItemToStartOfPipeline (ctx =>
        {
            var resolver = container.Resolve<IRouteResolver>();
            var route = resolver.Resolve(ctx);
            var thingyId = route.Parameters["thingyId"];
            return null;
        });
}