using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.AspNetCore.TestHost; using System; using System.Collections.Generic; using XUnitDIStudy.Service; namespace XUnitDIStudy.Test { public class Startup { /// /// 自定义 host 构建 /// /// public void ConfigureHost(IHostBuilder hostBuilder) { hostBuilder .ConfigureWebHost(config => { config .UseTestServer() .UseStartup(); }) .ConfigureAppConfiguration(builder => { // 注册配置 builder .AddInMemoryCollection(new Dictionary() { {"UserName", "Alice"} }) .AddJsonFile("appsettings.json"); }) .ConfigureServices((context, services) => { // 注册自定义服务 services.AddSingleton(); if (context.Configuration.GetValue("EnableDemo")) { } }); } /// /// 注册服务(支持以下三种) /// ConfigureServices(IServiceCollection services) /// ConfigureServices(IServiceCollection services, HostBuilderContext hostBuilderContext) /// ConfigureServices(HostBuilderContext hostBuilderContext, IServiceCollection services) /// public void ConfigureServices(IServiceCollection services, HostBuilderContext hostBuilderContext) { } /// /// 配置服务:类似于 asp.net core 里 Configure 方法 /// 可以注册已经注册的自定义服务 /// public void Configure(IServiceProvider applicationServices) { } } }