示例#1
0
        private static IHostBuilder CreateHostBuilder(string[] args)
        {
            return(Host.CreateDefaultBuilder(args)
                   .ConfigureServices(services =>
            {
                services.AddLogging(config => config.AddConsole());
                services.AddTransient <Program>();
                services.AddTransient <ServiceResolver>();
                services.AddTransient <ServiceA>();
                services.AddTransient <ServiceB>();
                services.AddTransient <Func <string, IService> >(provider => key =>
                {
                    switch (key)
                    {
                    case "A":
                        return provider.GetService <ServiceA>();

                    case "B":
                        return provider.GetService <ServiceB>();

                    default:
                        return provider.GetService <ServiceA>();
                    }
                });
            })
                   .ConfigureAppConfiguration(config =>
            {
                config.SetBasePath(Directory.GetCurrentDirectory());
                config.AddJsonFile("Appsettings.json", true, true);
            }));
        }