using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.DependencyInjection;

using Xunit;
using Xunit.Sdk;
using Xunit.Abstractions;
using Xunit.Extensions;
using Xunit.DependencyInjection;
using Xunit.DependencyInjection.Logging;

namespace OptionsPattern.Sutdy.Experience
{
    public class Startup
    {
        //生成主机方法
        //public IHostBuilder CreateHostBuilder() 
        //{ 

        //}

        /// <summary>
        /// 配置主机方法
        /// 内部可以配置 IConfiguration
        /// </summary>
        public void ConfigureHost(IHostBuilder hostBuilder)
        {
            //设置主机配置
            hostBuilder.ConfigureHostConfiguration(builder =>
            {
                
            });

            //设置应用配置
            hostBuilder.ConfigureAppConfiguration((context, builder) =>
            {
                
            });
        }

        /// <summary>
        /// 配置服务方法
        /// 注入或用途 IConfiguration IHostEnvironment 请使用  context.xx;
        /// </summary>
        public void ConfigureServices(IServiceCollection services, HostBuilderContext context)
        {

        }

        /// <summary>
        /// 将 Microsoft.Extensions.Logging 写入 ITestOutputHelper
        /// </summary>
        public void Configure(ILoggerFactory loggerFactory, ITestOutputHelperAccessor accessor)
        {
            loggerFactory.AddProvider(new XunitTestOutputLoggerProvider(accessor));
        }
    }
}