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)
{
}
}
}