netcore项目中有些服务是在通过中间件来通信的,比如orleans组件。它里面服务和客户端会指定网关和端口,我们只需要开放客户端给外界,服务端关闭端口。相当于去掉host,这样省掉了些指定配置连接和端口,用起来非常方便。
干掉host,下面代码:
using microsoft.aspnetcore.builder;using microsoft.aspnetcore.hosting;using microsoft.extensions.dependencyinjection;using microsoft.extensions.hosting;using system;namespace startupfiltertest{ 怎样开通qq黄钻 internal class program { static void main(string[] args) { #region net 5 host.createdefaultbuilder(args) .configurervices((hostcontext, svc) => { svc.addsingleton<istartupfilter, mystartupfilter>(); }) //.configurewebhostdefaults(host => //{ // host.ustartup<startup>(); //}) .build().run(); #endregion #region net 6 //var builder = webapplication.createbuilder(); //builder.rvices.addsingleton<istartupfilter,mystartupfilter>(); //var app = builder.build(); //app.run(); //webapplicationbuilder _bootstraphostbuilder configurewebhostdefaults #endregion } }}
net5里面注释掉的代码就是我们关掉的服务,跑起来相当于纯控制台了激光打标机改造。
但是startup里面需要写中间件等代码的指定,这样的话想把startup文件干掉又不方便。通过找文档发现istartupfilter可以实现这一块的功能,代替configure代码块。
public void configure(iapplicationbuilder app, iwebhostenvironment env) { }
istartupfilter 大学怎么过接口只有一个方法《action<iapplicationbuilder> configure(action<iapplicationbuilder> next)》只要实现它就行了,再注入到容器里面去。
internal class mystartupfilter : istartupfilter { public action<iapplicationbuilder> confi北京有哪些大学gure(action<iapplicationbuilder> next) { return app => { app.run(async context => { await context.respon.writeasync("hello world"); }); next(app); 数学日记怎么写 }; } }
svc.addsingleton<istartupfilter, mystartupfilter>();
但是新的问题又来了, 发现程序跑起来完全不会执行到mystartupfilter里面去,这是为什么呢?喵了下源码发现istartupfilter接口的实现是放到webhost里面
的,所以只能指定host了。而且该方法需要指定startup文件。这样又绕回来了,想精简却被微软的设计绕圈子了。
后面发现net6可以实现不需要startup文件,net6代码上图注释部分。net6的program改动挺大,而且起步是webapplication。通过查看webapplication发现它的builder,webapplicationbuilder里面是通过bootstraphostbuilder指定了configurewebhostdefaults的调用。
net6可以精简掉startup文件,但是它的启动直接绑定了webhost,这里跟net5比较连host都不能省了。
兜兜圈圈还是回到原点,因为没有研究它的源码,所以只能了解到这里了。最后两个问题: 1. net6可否不带host运行,2.istartupfilter和startup可否隔离host相互独立,不要绑一起。
到此这篇关于netcore项目中istartupfilter使用的文章就介绍到这了,更多相关netcore istartupfilter使用内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-03 22:18:50,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/bf684a88b2230b33e2ece1c80d416a18.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:解析.netcore项目中IStartupFilter使用教程.doc
本文 PDF 下载地址:解析.netcore项目中IStartupFilter使用教程.pdf
留言与评论(共有 0 条评论) |