CreateHostBuilder
public class Startup { public IHostBuilder CreateHostBuilder([AssemblyName assemblyName]) { } }使用这个方法来自定义 IHostBuilder 的时候可以用这个方法,通常我们可能不会用到这个方法,可以通过 ConfigureHost 方法来配置 Host
ConfigureHost 配置 Host
public class Startup { public void ConfigureHost(IHostBuilder hostBuilder) { } }通过 ConfigureHost 来配置 Host,可以通过这个方法配置 IConfiguration,也可以配置要注册的服务等
配置可以通过 IHostBuilder 的扩展方法 ConfigureAppConfiguration 来更新配置
ConfigureServices
public class Startup { public void ConfigureServices(IServiceCollection services[, HostBuilderContext context]) { } }如果不需要读取 IConfiguration 可以通过直接使用 ConfigurationServices(IServiceCollection services) 方法
如果需要读取 IConfiguration,可以通过 ConfigureServices(IServiceCollection services, HostBuilderContext context) 方法通过 HostBuilderContext.Configuration 来访问配置对象 IConfiguration
Configure
public class Startup { public void Configure([IServiceProvider applicationServices]) { } }Configure 方法可以没有参数,也支持所有注入的服务,和 asp.net core 里的 Configure 方法类似,通常可以在这个方法里做一些初始化配置
More如果你有在使用 Xunit 的时候遇到上述问题,推荐你试一下 Xunit.DependenceInjection 这个项目,十分值得一试~~
Referencehttps://github.com/pengweiqhca/Xunit.DependencyInjection
https://github.com/pengweiqhca/Xunit.DependencyInjection/blob/7.0/Xunit.DependencyInjection/DependencyInjectionTestFramework.cs
https://github.com/OpenReservation/ReservationServer
https://github.com/OpenReservation/ReservationServer/commit/d30e35116da0b8d4bf3e65f0a1dcabcad8fecae0