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 中的配置

转载于:https://www.cnblogs.com/TianFang/p/10585714.html

.Net core下的配置设置(一)——Configuration相关推荐

  1. asp 禁止某一个目录_asp.net core 系列 10 配置configuration (上)

    一. ASP.NET Core 中的配置概述 ASP.NET Core 中的应用配置是基于键值对,由configuration 程序提供. configuration 将从各种配置源提供程序操作键值对 ...

  2. 翻译 - ASP.NET Core 基本知识 - 配置(Configuration)

    翻译自 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-5.0 ASP ...

  3. apollo 配置中心_.NET Core 下使用 Apollo 配置中心

    " Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置 ...

  4. 服务器下多网站设置,网站配置多个服务器

    网站配置多个服务器 内容精选 换一换 本节介绍如何配置WAF的对外协议与源站协议.根据您的业务场景的不同,WAF提供灵活的协议类型配置.假设您网站为www.example.com,WAF可配置以下模式 ...

  5. [Linux]在Linux上部署Java开发环境笔记(一)-- 补充:Linux下如何手动设置IP及配置DNS服务

    在Linux上部署Java开发环境笔记(一) -- 补充:Linux下如何手动设置IP及配置DNS服务 2010/06/17 有的Linux系统会有网络设置的图形操作界面,比如"红旗Linu ...

  6. 【Windows Server 2019】FTP服务的配置与管理——配置FTP站点(下)SSL设置及被动模式

    目录 5.5.FTP SSL设置 准备工作 (1)创建FTP用户访问组 (2)编辑FTP站点[fjnu-ftp]的权限 (3)创建SSL证书 *配置FTP SSL 验证 (1)不加密访问FTP服务 ( ...

  7. .Net Core下如何管理配置文件

    一.前言 根据该issues来看,System.Configuration在.net core中已经不存在了,那么取而代之的是由Microsoft.Extensions.Cnfiguration.XX ...

  8. 在Linux下安装配置Oracle11g R2

    最近在安装Linux下的Oracle环境,折腾了很久,遇到了不少问题,最后终于搞定了,于是写下此文,记录安装过程,以备后用. 1.Linux环境配置准备 环境:Linux:Redhat Enterpr ...

  9. 一个.NET Core下的开源插件框架Pluginfactory

    插件模式历史悠久,各种中大型软件基本上都会实现插件机制,以此支持功能扩展,从开发部署层面,插件机制也可实现功能解耦,对于并行开发.项目部署.功能定制等都有比较大的优势. 在.NET Core下,一般我 ...

最新文章

  1. 关于ProGuard的学习了解(从别处转来)
  2. 自建28核树莓派集群,顺便学学docker,这里有一个500美元的搭建方案
  3. Linux查询系统运行的时间
  4. 7 兼容 因特尔十代_换装十代酷睿,里外都是白白的,超频i5提前装机测试
  5. python 消息队列 get是从队首还是队尾取东西_从零开始Python对redis作为消息队列的使用...
  6. Leetcode--881. 救生艇
  7. 【OpenCV】OpenCV函数精讲之 -- 初级图像混合
  8. cocos2dx开发之util类方法——字符串替换
  9. Python中fastapi构建的web项目使用pyinstaller打包为exe文件
  10. mysql添加 分隔_分割字符串并插入表---mysql
  11. 06.个人作业——软件产品案例分析
  12. mysql建立唯一索引升序_MySQL数据库SQL优化技巧六之唯一索引
  13. DC离职率预测案例分析
  14. 电热毯UL964标准上架亚马逊所需资料流程
  15. 在windows XP运行CISCO7200路由器仿真器
  16. 【GAOPS045】PDH(E1/T1/J1)和SDH
  17. linux系统下ls -r命令的简单实现(C语言版)
  18. kicad最小布线宽度默认是多少_CABLExpress发布了最新的光纤布线最佳实践指南
  19. springcloud五大神兽之Feign
  20. spring boot + rabbitMq整合之死信队列(DL)

热门文章

  1. 小小一行Python命令,居然把电脑变成服务器
  2. 必看总结!深度学习时代您应该阅读的10篇文章了解图像分类!
  3. 【TensorFlow】TensorFlow从浅入深系列之十二 -- 教你深入理解卷积神经网络中的池化层
  4. 《Python编程从入门到实践》记录之字典遍历
  5. 动手学pytorch之tensor数据(一)
  6. 逻辑回归(LR)个人学习总结篇
  7. android java 调用js_Android Java/JS互相调用
  8. html字幕滚动条,html中滚动条的代码是什么?如何设置html滚动条?
  9. 【补丁分析】CVE-2016-8610:对导致拒绝服务的“SSL Death Alert”漏洞补丁分析
  10. python怎么安装pin库_Python库之numpy库的安装教程