Asp.Net Core 入门篇

1.启动顺寻

public class program{

public static void Main(string[] args)

  CreateWebHostBuilder(args).Build().Run();

}

public static IWebHostBuilder CreateWebHostBuilder(string[] args)=>WebHost.CreateDefaultBuilder(args).UseStartup<Startup>();

}

在Main方法中可以看到,整个程序首先是由CreateWebHostBuilder 方法创建一个IWebHostBuilder对象,并调用它的Build方法得到IWebHost对象,然后调用该对象的Run方法运行起来的。在CreateWebHostBuilder内部,调用了WebHost类的静态方法CreateDefaultBuilder类型的对象,该类型的对象具有一些默认设定的值,之后又调用了UseStartup方法进一步来配置应用程序的启动。

由CreateDefaultBuilder方法创建IWebHostBuilder对象时所包含的主要默认选项如下:

配置Kestrel服务器作为默认的Web服务器来负责处理Web请求与响应

使用当前目录作为应用程序的内容目录(ContentRoot),该目录决定了Asp.NET Core查找内容文件(如MVC试图等)的位置

从以ASPNETCore_开头的环境变量(如 ASPNETCORE_ENVIRONMENT)中以及命令行参数中加载配置项

从appsetting.json、appsettings.{Environment}.json、用户机密(仅开发环境)、环境变量和命令行参数等位置加载应用配置

配置日志功能,默认添加控制台输出与调试输出

如果应用程序被托管在IIS中,启动IIS集成,他会配置应用程序主机地址和端口,并允许补货启动错误等。

IWebHostBuilder接口有多个扩展方法,其中有一个很重要的是UseStartup方方法,它主要向应用程序提供用于配置启动的类,而指定的这个类应具有一下两个方法:

ConfigureServices:用于向Asp.Net Core的以来注入容器添加服务

Configure:用于添加中间件,配置请求管道

这两个方法都会在运行时被调用,且在应用程序的整个生命周期内,只执行一次。其中ConfigureServices方法是可选的,Configure方法是必须的。在程序启动时,他会执行ConfigureServices方法(如果有),将制定的服务放入应用程序的依赖注入容器中,然后再执行Configure方法,想请求管道中添加中间件。

 ConfigureServices方法有一个IServieCollection类型的参数,使用它能够将应用程序级别注册到Asp.Net Core默认的依赖注入容器中。Configure方法默认包含一个IApplicationBuilder类型的参数,通过它可以添加一个或多个中间件,所有添加的中间件将会对传入的Http请求进行处理,并将结果返回给位发起请求的客户端。

当在ConfigureServices方法中向以来注入容器添加了服务以后,后面的Configure方法就可以通过参数将需要的服务注入进来。

原文地址:https://www.cnblogs.com/sundh1981/p/13823372.html