asp商业网站源码分享,asp公司企业网站模板源代码

大家好,asp商业网站源码分享相信很多的网友都不是很明白,包括asp公司企业网站模板源代码也是一样,不过没有关系,接下来就来为大家分享关于asp商业网站源码分享和asp公司企业网站模板源代码的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

查看ASP.NETCoreWebHost类源码发现存在如下代码

varstartupFilters=_applicationServices.GetService<IEnumerable<IStartupFilter>>();\nAction<IApplicationBuilder>configure=_startup!.Configure;\nif(startupFilters!=null)\n{\nforeach(varfilterinstartupFilters.Reverse())\n{\nconfigure=filter.Configure(configure);\n}\n}\n\nconfigure(builder);\n\nreturnbuilder.Build();

以上代码块是在WebHost的StartAsync方法中调用,说明在程序启动时,asp.netcore会执行所有实现IStartupFilter接口类的Configure的方法。

IStartupFilter接口如下

publicinterfaceIStartupFilter\n{\nAction<IApplicationBuilder>Configure(Action<IApplicationBuilder>next);\n}

Configure方法接收一个Action类型的委托,该委托接收一个IApplicationBuilder对象。有了IApplicationBuilder对象,我们就可以在figure方法中做很多事情,如添加中间件、设置请求管道、注册服务等等。

IStartupFilter.Configure执行时机

由于IStartupFilter.Configure方法在builder.Build()前执行,所以该方法在所有中间件之前执行。

例1通过扩展IStartupFilter实现添加一个新中间件

publicclassCustomStartupFilter:IStartupFilter\n{\npublicAction<IApplicationBuilder>Configure(Action<IApplicationBuilder>nextBuild)\n{\nreturnnewAction<IApplicationBuilder>(\napp=>\n{\napp.Use(next=>\n{\nreturnnewRequestDelegate(\nasynccontext=>\n{\n//context.Response.ContentType=&34;;\n\nConsole.WriteLine($&34;);\nawaitnext.Invoke(context);\nConsole.WriteLine($&34;);\n});\n});\nnextBuild.Invoke(app);\n}\n);\n}\n}

例2通过IStartupFilter来配置跨域访问

publicclassCorsStartupFilter:IStartupFilter\n{\npublicAction<IApplicationBuilder>Configure(Action<IApplicationBuilder>next)\n{\nreturnbuilder=>\n{\nbuilder.UseCors(policy=>policy.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod());\nnext(builder);\n};\n}\n}

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平