zoukankan      html  css  js  c++  java
  • 04. Asp.Net Core 3.x 笔记 配置文件

    配置文件优先级

    1.appsettings.json
    2.appsettings.{xxxx}.json,比如: appsettings.Development.json
    3.环境变量
    4.命令行

    越靠后,优先级越高,将覆盖前者

    添加自定义配置

    appsettings.json:

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
    
        "Three": {
        "BoldDepartmentEmployeeCountThreshold": 30
      }
    
    }
    

    获取及其使用配置项:

    • Startup.cs
        public class Startup
        {
            private readonly IConfiguration configuration;
            public Startup(IConfiguration configuatuion)
            {
                configuration = configuatuion;
                var three = configuration["Three:BoldDepartmentEmployeeCountThreshold"];
            }
    

    自定义配置对象及其获取

    • 自定义配置对象 ThreeOptions
        public class ThreeOptions
        {
            public int BoldDepartmentEmployeeCountThreshold { get; set; }
            public int MyProperty { get; set; }
        }
    
    • 注册配置对象
        public class Startup
        {
            private readonly IConfiguration configuration;
            public Startup(IConfiguration configuatuion)
            {
                configuration = configuatuion;
                //var three = configuration["Three:BoldDepartmentEmployeeCountThreshold"];
            }
    
            //注册服务
            public void ConfigureServices(IServiceCollection services)
            {
                ...
                services.Configure<ThreeOptions>(configuration.GetSection("Three"));
            }
    
    • xxxControler中使用:
        public class DepartmentController : Controller
        {
            private readonly IOptions<ThreeOptions> threeOptions;
    
            public DepartmentController(IDepartmentService departmentService, IOptions<ThreeOptions> threeOption)
            {
                this.departmentService = departmentService;
            }
    
    • 在Views使用xxx.cshtml中使用:
    @model Three.Models.Department
    @inject Microsoft.Extensions.Options.IOptions<Three.ThreeOptions> options
    ...
            @if (Model.EmployeeCount > options.Value.BoldDepartmentEmployeeCountThreshold)
            {
    ...
            }
    ...
    
    

    自定义配置文件

    • myconfig.json
    {
      "Three": {
        "BoldDepartmentEmployeeCountThreshold": 1000
      }
    }
    

    Program.cs

    
            public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureAppConfiguration((context, configBuilder) => 
                    {
                        //configBuilder.Sources.Clear();
                        configBuilder.AddJsonFile("myconfig.json");
                    })
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    });
    

    myconfig.json 会覆盖 appsettings.json 相同的配置项

  • 相关阅读:
    表达式和计算的描述
    表达式和计算的描述
    递归算法浅谈
    编程基本功训练:流程图画法及练习
    【2012.1.24更新】不要再在网上搜索eclipse的汉化包了!
    VS2008下直接安装使用Boost库1.46.1版本号
    android关键组件service服务(一)
    U盘安装咱中国人自己的操作系统UbuntuKylin14.04LST(超具体原创图文教程)
    数据流图的画法
    匈牙利算法
  • 原文地址:https://www.cnblogs.com/easy5weikai/p/13030557.html
Copyright © 2011-2022 走看看