000webhost如何上传网站源码分享,网站源代码如何编辑上传

大家好,今天来为大家分享000webhost如何上传网站源码分享的一些知识点,和网站源代码如何编辑上传的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

查看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

风君子

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