当前位置: 移动技术网 > IT编程>开发语言>.net > Asp.NetCore初步探究

Asp.NetCore初步探究

2019年02月14日  | 移动技术网IT编程  | 我要评论

历届国家总理,丝瓜子,贵州省公务员局网

 

1,  新建一个空的aspnetcore项目,默认program下的代码如下:

 

 1  public static void main(string[] args)
 2 
 3         {
 4 
 5             buildwebhost(args).run();
 6 
 7         }
 8 
 9  
10 
11    public static iwebhost buildwebhost(string[] args) =>
12 
13             webhost.createdefaultbuilder(args)
14 
15                 .usestartup<startup>()
16 
17                 .build();
view code

 

代码很简单,有main入口开始执行,调用静态方法buildwebhost开始构建webhost.

2,今天主要探究下整个webhost的构建过程和涉及到的相关接口和类.

首先查看下这里的webhost是个什么东东,f12查看源码

 

可以看到如图所示webhost类实际上是iwebhostbuilder和iwebhost封装了下而已并没有多么神奇的功能。

3,接下来我们看下webhost.createdefaultbuilder(args)这句,跟踪进去查看

 

貌似是实例化一个webhostbuilder的对象。

ok重点来了,这个就是我们整个流程的开始了,由createdefaultbuilder创建webhostbuilder对象,然后由这个对象创建我们所熟知的webhost对象,那么webhost对象在哪呢,我们接着往下看

4,下一句是usestartup<startup>()这个是干嘛的,继续跟踪下去

 

可以看到usestartup是一个iwebhostbuilder的泛型扩展方法,至于这个方法的作用主要就是指定web主机要使用的启动类型。也就是将startup这个类的类型作为参数传递进去,继续跟踪这个方法的实现

 

可以看出所指定的startup类型会在di容器中注册为单例形式,注册的处理过程被封装成action。

至于这个startup类有什么限制本章先不讨论。

5,接下来看看build()这个方法

 

这一步貌似就是为了构建我们的第二个重要对象webhost,至于具体如何构建的这里只是初步探究,暂不细究。

6,有了对象webhost那接下来就是要(run)运行起来了继续查看

 

可以看到又是一个扩展方法,不过这个扩展方法是iwebhost的扩展方法,到run()这一步基本上我们的应用程序就跑起来了,当然run()里的执行逻辑包括端口监听,url处理等待这里先不细说。

 

总结:本篇初步探索了下aspnetcore的2大对象webhost,webhostbuilder。具体的对象的构建过程本章忽略了,仅供给自己和初入门的朋友一个参考,不足之处肯定多多的,欢迎指正

备注:aspnetcore的版本是2.0的哦,别弄差了。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网