ASP.NET Core配置设置之Configuration包

 更新时间:2022年07月07日 15:48:52   作者:天方  
这篇文章介绍了ASP.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 中的配置

到此这篇关于ASP.NET Core配置设置之Configuration包的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • asp.net 截取字符串代码

    asp.net 截取字符串代码

    asp.net字符串截取实现代码,需要的朋友可以参考下。
    2009-12-12
  • ASP.NET MVC使用jQuery Template实现批量更新

    ASP.NET MVC使用jQuery Template实现批量更新

    这篇文章介绍了ASP.NET MVC使用jQuery Template实现批量更新的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 详解Asp.Net Core 发布和部署( MacOS + Linux + Nginx )

    详解Asp.Net Core 发布和部署( MacOS + Linux + Nginx )

    这篇文章主要介绍了详解Asp.Net Core 发布和部署( MacOS + Linux + Nginx ) ,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • 静态gb2312编码在项目传值出现中文乱码现象

    静态gb2312编码在项目传值出现中文乱码现象

    参考的美工静态页面是gb2312格式的,当此编码拿到项目中后,utf-8编码的系统,加载页面时,会出现样式问题,比如不能正常居中等
    2013-06-06
  • asp.net 数字签名实例代码

    asp.net 数字签名实例代码

    数字签名具体的好处就不说了,看了很多文章,网络上各种图,理解起来可能比较麻烦,在这里简单说一下原理,减少大家的误区,纯属个人理解,欢迎纠正
    2012-06-06
  • ASP.NET MVC从控制器中获取URL值

    ASP.NET MVC从控制器中获取URL值

    这篇文章介绍了ASP.NET MVC从控制器中获取URL值的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • ASP.NET方法如何重载需要必备哪些条件

    ASP.NET方法如何重载需要必备哪些条件

    很多新手朋友们都不知道ASP.NET方法如何重载,下面为大家介绍下在设计重载方法的时候应该注意一下事项,感兴趣的朋友不要错过
    2013-12-12
  • c# rabbitmq 简单收发消息的示例代码

    c# rabbitmq 简单收发消息的示例代码

    这篇文章主要介绍了c# rabbitmq 简单收发消息的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • ASP.NET在IIS7中上下文中不可用的解决方法

    ASP.NET在IIS7中上下文中不可用的解决方法

    执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
    2011-02-02
  • asp.net Silverlight中的模式窗体

    asp.net Silverlight中的模式窗体

    现在Web开发技术中流行着模式窗体,这种不用跳转页面又能够满足与用户进行数据交互的手段确实不错,那我今天也谈谈Silverlight中的模式窗体吧。
    2009-11-11

最新评论