asp.netcore中如何编写中间件作为自定义路由?我想转换这段代码:vartrackPackageRouteHandler=newRouteHandler(context=>{varrouteValues=context.GetRouteData().Values;returncontext.Response.WriteAsync($"Hello!Routevalues:{string.Join(",",routeValues)}");});varrouteBuilder=newRouteBuilder(app,trackPackageRouteHandler);routeBuilder.MapRoute("追踪包裹路线","package/{operation:regex(^track|create|detonate$)}/{id:int}");routeBuilder.MapGet("hello/{name}",context=>{varname=context.GetRouteValue("name");//这是HTTPGET"hello/"匹配时的路由处理器//匹配HTTPGET"你好//,//使用routeBuilder.MapGet("hello/{*name}"returncontext.Response.WriteAsync($"Hi,{name}!");});varroutes=routeBuilder.Build();app.UseRouter(routes);进入这个:app.UseHelloRouter();但我不想使用路由以外的任何服务你可以创建一个扩展方法来封装路由器配置publicstaticclassHelloRouterExtensions{publicstaticIApplicationBuild呃UseHelloRouter(这个IApplicationBuilder应用程序){vartrackPackageRouteHandler=newRouteHandler(context=>{varrouteValues=context.GetRouteData().Values;returncontext.Response.WriteAsync($"Hello!Routevalues:{string.Join(",",routeValues)}");});varrouteBuilder=newRouteBuilder(app,trackPackageRouteHandler);routeBuilder.MapRoute("追踪包裹路线","package/{operation:regex(^track|create|detonate$)}/{id:int}");routeBuilder.MapGet("hello/{name}",context=>{varname=context.GetRouteValue("name");//这是HTTPGET"hello/"匹配时的路由处理器//匹配HTTPGET"你好//,//使用routeBuilder.MapGet("hello/{*name}"returncontext.Response.WriteAsync($"Hi,{name}!");});varroutes=routeBuilder.Build();app.UseRouter(routes);returnapp;}}这基础上修改了这种配置publicvoidConfigure(IApplicationBuilderapp,ILoggerFactoryloggerFactory){vartrackPackageRouteHandler=newRouteHandler(context=>{varrouteValues=context.GetRouteData().Values;returncontext.Response.WriteAsync($"Hello!路由值:{string.Join(",",routeValues)}");});varrouteBuilder=newRouteBuilder(app,trackPackageRouteHandler);routeBuilder.MapRoute("追踪包裹路线","package/{operation:regex(^track|create|detonate$)}/{id:int}");routeBuilder.MapGet("hello/{name}",context=>{varname=context.GetRouteValue("name");//这是HTTPGET"hello/"匹配时的路由处理器//匹配HTTPGET"你好//,//使用routeBuilder.MapGet("hello/{*name}"returncontext.Response.WriteAsync($"Hi,{name}!");});varroutes=routeBuilder.Build();app.UseRouter(routes);}在上面输入这个配置是C#学习教程:如何在asp.netcore中编写中间件作为自定义路由器?所有内容分享出来,如果对大家有用需要多了解一下C#学习教程,希望大家多多关注——publicvoidConfigure(IApplicationBuilderapp,ILoggerFactoryloggerFactory){app.UseHelloRouter();}本文收集自网络,不代表立场,如涉及侵权,敬请谅解点击右边联系管理员删除,如需转载请注明出处:
