zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    vue数组和对象不能直接赋值
    数组内部的对象监听问题
    vue知识点(工作中遇到)
    Array数组
    js对象操作
    Vue-router
    sublime text 3 常用插件 —— SFTP
    Python中的线程和进程
    python中的sockeserver模块简单实用
    python利用socket写一个文件上传
  • 原文地址:https://www.cnblogs.com/lishidefengchen/p/13410554.html
Copyright © 2011-2022 走看看