zoukankan      html  css  js  c++  java
  • .Net core下的配置设置(一)——Configuration

    ASP.NET Core 中提供了一个Configuration 包,用以应用配置基于配置提供程序建立的键值对。这里以json文件配置的方式,简单的介绍一下它的用法。

    首先定义一个配置文件appsettings.json:

    {
        "key1""value1",
        "key2": -1,
            "subsection":  {
                "key1""value2",
                "key2": -5
        }
    }

    如下是基本的用法:

    var configBuilder = new ConfigurationBuilder().AddJsonFile("appsettings.json");
    var config        = configBuilder.Build();
    
    var value1 = config.GetValue<string>("key1");
    var value2 = config.GetValue<int>("key2");

    .net core将配置操作分布在ConfigurationBuilder和IConfigurationRoot两个对象了,其中ConfigurationBuilder用来配置数据源,IConfigurationRoot则提供统一的读取操作。

    数据源:

    配置提供程序将配置数据从各种配置源读取到键值对,它支持的配置方式比较多,常见的就有:

    • 命令行参数
    • 环境变量
    • 内存中的 .NET 对象
    • 设置文件(Ini、 xm、,Json)
    • 自定义提供程序

    基本上常用的配置数据源都支持了,支持多数据源配置,也支持自定义数据源,非常灵活而方便。具体的配置方式可以参考官方文档ASP.NET Core 中的配置

    CreateDefaultBuilder

    为了简化配置,Asp.net core中提供了一个函数CreateDefaultBuilder隐式提供了对ConfigurationBuilder的调用,顺序提供了对如下配置文件的配置加载:

    • appsettings.json。
    • appsettings.{Environment}.json。
    • 应用在使用入口程序集的 Development 环境中运行时的机密管理器。
    • 环境变量。
    • 命令行参数

    更多细节可以参考官方文档:设置主机

    读取配置

    前面的例子中演示了基本的读取方式: 

    var value1 = config.GetValue<string>("key1");
    var value2 = config.GetValue<int>("key2");

    除了这种方式外,也可以通过Bind方法按照对象的方式读取: 

    class ConfigData
    {
        public string Key1 { get; set; }
         public int Key2 { get; set; }
    }
    
    var cfgData = new ConfigData();
    config.Bind(cfgData);

     另外,对于子节点的配置,也可以通过GetSection函数定位到子节点,然后按照前面的方式读取,例如: 

    var value1 = config.GetSection("subsection").GetValue<string>("key1");
    var cfgData = config.GetSection("subsection").Get<ConfigData>();

     参考文章

    ASP.NET Core 中的配置

  • 相关阅读:
    Leetcode 15
    setjmp和longjmp重复使用的问题
    linux的下两种定时器实现
    linux中的信号处理
    【推荐软件】ack
    《代码大全》阅读心得二
    更换svn diff为vimdiff
    unpack的一点使用问题
    【lua】table是否为空的判断
    vi复制部分字符
  • 原文地址:https://www.cnblogs.com/TianFang/p/10585714.html
Copyright © 2011-2022 走看看