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

原文地址:https://www.cnblogs.com/TianFang/p/10585714.html

时间: 2024-08-30 11:01:42

.Net core下的配置设置(一)——Configuration的相关文章

.Net core下的配置设置(二)——Option

我在前面的文章.Net core下的配置设置(一)——Configuration中介绍了.net core下配置文件的读取方法,在.net core中,直接从Configuration对象中读取的并不多,大多是用的配置依赖注入的方式Option,本文这里简单的介绍下它的用法. 首先还是以一个简单的配置文件为例: {  "section": {    "key1": "value2",    "key2": -5  }} 如下是

Win7/Win2008下IIS配置Asp站点启用父路径的设置方法(已解决)

在Win7/Win2008下IIS配置Asp站点启用父路径的设置方法与win2003下不同,看看下图就知道了! Win7/Win2008下IIS配置Asp站点启用父路径的设置方法(已解决)

[转载]SELinux 环境下网络服务设置,配置 Apache 、Samba、NFS

原文地址:http://www.ibm.com/developerworks/cn/linux/l-cn-selinux-services1/index.html?ca=drs- 引言 SELinux 的安全防护措施主要集中在各种网络服务的访问控制.对于像 Apache .Samba.NFS.vsftp .MySQL.Bind dns 等服务来说,SELinux 仅仅开放了最基本的运行需求.至于连接外部网络.运行脚本.访问用户目录.共享文件等,必须经过一定的 SELinux 策略调整才能充分发挥

Asp.Net Core下的两种路由配置方式

与Asp.Net Mvc创建区域的时候会自动为你创建区域路由方式不同的是,Asp.Net Core下需要自己手动做一些配置,但更灵活了. 我们先创建一个区域,如下图 然后我们启动访问/Manage/Home/Index 发现是404没有找到该页面,因为我们还没有为其配置路由,下面使用两种配置区域路由的方式 1.通过配置MapRoute app.UseMvc(routes => { routes.MapRoute( name: "default", template: "

Linux下安装配置Apache服务器

Linux下安装配置Apache服务器 1. 安装Apache [[email protected] ~]# yum –y install httpd 2. 启动Apache [[email protected] ~]# systemctl start httpd 3. 查看进程 [[email protected] ~]# systemctl status httpd httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib

CentOS和Ubuntu下安装配置Greenplum数据库集群(包括安装包和源码编译安装)

http://blog.csdn.net/prettyshuang/article/details/50501904 首先说一下,无论是CentOS/RedHat还是Ubuntu都可以按源码方式.安装包方式编译安装. 1.   规划 192.168.4.93(h93)       1个主master  2个主segment.2个镜像segment 192.168.4.94(h94)       1个备master  2个主segment.2个镜像segment 都安装在/home/wslu/gp

linux下安装配置tomcat以及tomcat开机自启配置

Linux下Tomcat安装配置以及Windows不能连接服务器Tomcat解决方案 一.从官方网站上下载tomcat软件包. 官网地址: http://tomcat.apache.org/ 点击左侧的 download的一个版本,我选择的是 tomcat7.0,选择一个后缀名为.tar.gz文件直接下载到本地. 二.通过工具SSH Secure 上传至linux服务器中,进行解压 解压tomcat压缩文件: #tar zxvf apache-tomcat-7.0.53.tar.gz 将解压后的

.Net Core下如何管理配置文件(转载)

原文地址:http://www.cnblogs.com/yaozhenfa/p/5408009.html 一.前言 根据该issues来看,System.Configuration在.net core中已经不存在了,那么取而代之的是由Microsoft.Extensions.Cnfiguration.XXX一系列的类库提供,对应的开源地址为点击这里. 从当前开源的代码来看,在.net core下提供了以下类库给我们: Microsoft.Extensions.Configuration.Abst

Redhat Enterprise 5.4下安装配置Oracle 11g R2详细过程

1.Linux环境配置准备 环境:Linux:Redhat Enterprise 5.4,DB:Oracle 11g R2 X64,Oracle安装到/home/oralce_11目录下. 配置过程如下:(大部分是网上的内容,个人也是按照网上步骤来的) 1) 检查基本需求(对于牛逼的服务器来说,这个肯定是满足要求的,可以跳过)内存大小grep MemTotal /proc/meminfo交换分区大小grep SwapTotal /proc/meminfo增加交换分区创建/home/swap这么一