netcore---Program.cs配置相关信息,及读取配置信息

 代码:

 1 using Autofac;
 2 using Autofac.Extensions.DependencyInjection;
 3 using Microsoft.EntityFrameworkCore;
 4 using Microsoft.Extensions.Configuration;
 5 using Microsoft.Extensions.DependencyInjection;
 6 using Microsoft.Extensions.Hosting;
 7 using Serilog;
 8 using System.Reflection;
 9 using Yanwen.PLM.Entity;
10 
11 namespace Yanwen.PLM.Worker
12 {
13     public class Program
14     {
15         private static IConfiguration Configuration { get; set; }
16 
17         public static void Main(string[] args)
18         {
19             CreateHostBuilder(args).Build().Run();
20         }
21 
22         public static IHostBuilder CreateHostBuilder(string[] args)
23           => Host.CreateDefaultBuilder(args)
24             .UseServiceProviderFactory(new AutofacServiceProviderFactory())
25             .ConfigureAppConfiguration((hostingContext, config) => {
26                 //var env = hostingContext.HostingEnvironment;
27                 //config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
28                 //      .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
29                 Configuration = config.Build();
30             })
31             .ConfigureServices(ConfigureServices)
32             .ConfigureContainer<ContainerBuilder>(ConfigureContainer)
33             .UseSerilog((ctx, config) => config.ReadFrom.Configuration(ctx.Configuration));
34 
35         private static void ConfigureServices(IServiceCollection services)
36         {
37             services.AddHostedService<Worker>();            
38             services.AddScoped<DbContext, MySqlDbContext>();
39             services.AddDbContext<MySqlDbContext>(options =>
40             options.UseMySql(Configuration.GetConnectionString("Default")));
41 
42             var section = Configuration.GetSection("Redis:Default");
43             string instanceName = section.GetSection("InstanceName").Value;
44             string connectionString = section.GetSection("Connection").Value;
45             int defaultDB = int.Parse(section.GetSection("DefaultDB").Value ?? "0");
46             services.AddSingleton(new MyRedis(connectionString, instanceName, defaultDB));
47         }
48 
49         private static void ConfigureContainer(ContainerBuilder containerBuilder)
50         {
51             // containerBuilder.RegisterType<EstimaterateService>().As<IEstimaterateService>();
52             var dataAccess = Assembly.GetExecutingAssembly();
53             containerBuilder.RegisterAssemblyTypes(dataAccess).Where(t => t.Name.EndsWith("Service")).AsImplementedInterfaces();
54         }
55     }
56 }
View Code
原文地址:https://www.cnblogs.com/lishidefengchen/p/13410554.html