Program类在启动时创建Web Host。然后,它配置日志记录、依赖注入容器、Kestrel Web服务器、IIS集成等。它还将框架服务添加到DI容器中,以便我们可以使用它。 Program类的代码是vs自动生成的,并且对于大多数项目来说很可能已经足够了。
什么是web host?Web host负责启动应用程序并运行它。 在应用程序启动时创建。 Web host创建一个服务器,该服务器侦听HTTP请求。 它配置请求管道(或中间件管道)。 另外,它设置了DI容器,我们在其中添加了服务。 管理服务的生命周期也是Web host的任务。
下图显示了如何创建web hostCreateWebHostBuilder 创建主机并为其提供配置。build方法使用提供的配置进行构建。Run方法运行它,然后侦听HTTP请求
Startup 类ASP.NET Core 应用使用 Startup 类,按照约定命名为 Startup 。 Startup 类:
可选择性地包括 ConfigureServices 方法以配置应用的服务。
必须包括 Configure 方法以创建应用的请求处理管道。
public class Startup
{
// 使用此方法向容器添加服务
public void ConfigureServices(IServiceCollection services)
{
...
}
// 使用此方法配置HTTP请求管道
public void Configure(IApplicationBuilder app)
{
...
}
}
ConfigureServices 方法
ConfigureServices作用即实现了依赖注入(DI)的配置,只有把服务添加到服务容器中才能让这些服务可以通过依赖注入的形式在应用中使用
例如添加Service和Iservice注入
services.AddScopedConfigure 方法();
Configure 是一个在
命名空间 Microsoft.AspNetCore.Hosting 定义的 抽象类 ↓↓↓
public abstract void Configure(Microsoft.AspNetCore.Builder.IApplicationBuilder app);
IApplicationBuilder
IApplicationBuilder 定义用于配置应用请求管道的类,ASP.NET Core 请求管道包含一系列请求委托,依次调用。
.NET Core Program.cs
.NET Core ConfigureServices
Configure()方法 | ASP.NET Core 中间件
【视频】剖析IOC容器的原理 | 手写IOC容器
ASP.NET Core
浅谈ASP.NET Core中IOC与DI的理解和使用
依赖注入IoC学习 + AOP界面编程初探
ASP.NET Core 依赖注入(构造函数注入,属性注入等)
Autofac | AspectCore 框架接口文档
Autofac官方接口文档
Autofac的属性注入,IOC的坑
Castle DynamicProxy基本用法(AOP)
框架学习与探究之AOP–Castle DynamicProxy
AOP静态注入-PostSharp
PostSharp官方文档
PostSharp中文文档



