dotnet Core 学习(二):Configuration

程序开发过程中,配置文件是必不可少的,之前.net 开发读取配置文件都会先引用System.Configuration类库,在.net Core开发中可以通过引用Microsoft.Extensions.Configuration实现这些功能,不但可以方便的读取之前类似Web.config/App.Config的XML文件,而且还能很方便的读取JSON、INI格式的文件。

注:目前.net Core版本已到1.1.0版本,Visual Studio Code 1.7.2,本人也已及时做了更新。

1.Microsoft.Extensions.Configuration引用

新建项目DotNetCoreConfig并在project.json中添加Microsoft.Extensions.Configuration的引用,如下图所示:

在dependencies下添加对Microsoft.Extensions.Configuration的引用,版本1.1.0,并重新执行Restore操作。

2.下例演示了如何测试把 Configuration 作为一个键/值对存储来处理。

运行输出结果:

3.Configuration读取XML配置

在项目根目录心中App.config文件,如下:

<?xml version="1.0" encoding="utf-8"?>
<DotNetCoreConfig>
  <key1 key="DotNet" value="Core"></key1>
  <key2>Hello</key2>
</DotNetCoreConfig>

 在dependencies下添加对Microsoft.Extensions.Configuration.XML的引用,版本1.1.0,并重新执行Restore操作。

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        },
        "Microsoft.Extensions.Configuration": "1.1.0",
        "Microsoft.Extensions.Configuration.XML":"1.1.0"
      },
      "imports": "dnxcore50"
    }
  }
}

代码如下:

 1 public static void Main(string[] args)
 2         {
 3             var builder=new ConfigurationBuilder();                        //构建ConfigurationBuilder实例
 4             builder.AddInMemoryCollection();                               //提供内容内存类型的提供程序
 5             builder.SetBasePath(Directory.GetCurrentDirectory());          //指定配置文件所在的目录
 6             builder.AddXmlFile("app.config");                              //加载配置文件
 7             var config=builder.Build();
 8
 9             var value1=config["key1:key"];                                 //获取Key1节点下的Key值
10             Console.WriteLine(value1);
11             Console.WriteLine(config["key2"]);                             //获取key2节点下的值
12             Console.ReadLine();
13         }

启动调试可以看到变量config如下:

输出结果如下:

4.Configuration读取JSON配置

在项目根目录心中App.Json文件,如下:

{
    "Key1":"dotNetCore",
    "Key2":"Test"
}

在dependencies下添加对Microsoft.Extensions.Configuration.XML的引用,版本1.1.0,并重新执行Restore操作。

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        },
        "Microsoft.Extensions.Configuration": "1.1.0",
        "Microsoft.Extensions.Configuration.XML":"1.1.0",
        "Microsoft.Extensions.Configuration.JSON":"1.1.0"
      },
      "imports": "dnxcore50"
    }
  }
}

读取App.json配置的代码如下:

public static void Main(string[] args)
        {
            var builder=new ConfigurationBuilder();                        //构建ConfigurationBuilder实例
            //builder.AddInMemoryCollection();                               //提供内容内存类型的提供程序
            builder.SetBasePath(Directory.GetCurrentDirectory());          //指定配置文件所在的目录
            builder.AddJsonFile("app.json");
            //builder.AddXmlFile("app.config");                              //加载配置文件
            var config=builder.Build();                                    

            //var value1=config["key1:key"];                                 //获取Key1节点下的Key值
            var value1=config["key1"];
            Console.WriteLine(value1);
            Console.WriteLine(config["key2"]);                             //获取key2节点下的值
            Console.ReadLine();
        }

启动调试可以看到变量config如下:

输出结果如下:

时间: 2025-01-21 04:15:23

dotnet Core 学习(二):Configuration的相关文章

dotnet Core 学习(一):环境搭建

1.环境搭建 Windows下环境搭建:http://www.microsoft.com/net/core#windowsvs2015 Linux下环境搭建:http://www.microsoft.com/net/core#linuxcentos Windows下VS Code环境配置: VS Code下载地址:https://code.visualstudio.com/ 安完成后,在VS Code中安装C#插件:C# for Visual Studio Code (powered by Om

dotnet Core 学习(三):多项目

程序开发过程中基本都是由多个项目组成一个完整的解决方案.今天主要学习下如何在Visual Studio Code中进行多项目开发. 1.项目创建 首先创建一个文件夹MultiProject类似于Visual Studio中的解决方案文件夹. 在MultiProject分别创建dotNetCoreApp和dotNetCoreLib文件夹. 在这里dotNetCoreApp为一个控制台应用程序项目,dotNetCoreLib为类库项目用于被引用.相关命令如下: 创建文件夹MultiProject:

dotNet Core开发环境搭建及简要说明

一.安装 .NET Core SDK 在 Windows 上使用 .NET Core 的最佳途径:使用Visual Studio. 免费下载地址: Visual Studio Community 2015 .下载安装之后 再下载以下两件东西: Visual Studio 2015 Update 3 (这个我安装了一天一夜,国外VPN估计可以解决这个问题) .NET Core 1.0.1 - VS 2015 Tooling Preview 2 当然你也可以使用 .NET Core SDK for

发布xxl-job executor dotnet core 执行器的实现

DotXxlJob [github][https://github.com/xuanye/DotXxlJob] xxl-job的dotnet core 执行器实现,支持XXL-JOB 2.0+ 1 XXL-JOB概述 [XXL-JOB][1]是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用.以下是它的架构图 2. 关于DotXxlJob产生 在工作中调研过多个任务调度平台,如Hangfire.基于Quatz.NE

【ASP.NET Core分布式项目实战】(五)Docker制作dotnet core控制台程序镜像

Docker制作dotnet core控制台程序镜像 基于dotnet SDK 新建控制台程序 mkdir /home/console cd /home/console dotnet new console dotnet restore 创建 Dockerfile 文件,参考https://github.com/dotnet/dotnet-docker/blob/master/samples/aspnetapp/Dockerfile vim /home/console/Dockerfile #

JBPM学习(二):ProcessEngine与Service API

1.获取processEngine的方法: a) 方法一 private ProcessEngine processEngine = new Configuration().setResource("jbpm.cfg.xml").buildProcessEngine(); b) 方法二 // 获取单例的ProcessEngine对象,使用的是默认的配置文件(jbpm.cfg.xml) private ProcessEngine processEngine = Configuration

北京时间28号0点以后Scott Hanselman同志台宣布dotnet core 1.0 rtm

今日占住微信号头条的好消息<终于来了!微软.Net Core 1.0下载放出>.本人立马跑到官网http://dot.net看了一下,仍然是.net core 1.0 Preview 1版本. 看来该文所提供的下载链接应该是提前泄露的版本了吧. 有网友说,Red Hat DevNation的第二天也就是美太平洋时间27号上午(北京时间28号0点以后) Scott Hanselman同志才会登台宣布dotnet core 1.0 rtm. 查了一下dotnet cli tools 进度,如下:

【Step By Step】将Dotnet Core部署到Docker上

本教程的前提是,你已经在Linux服务器上已经成功的安装了Docker,我会大概介绍在此过程中用到的Docker命令,并不会介绍所有的Docker命令(因为我也不会). 一.在Docker中运行Dotnet Core Hello World 微软官方提供了已经集成好Dotnet Core运行所需环境的Docker Image,我们可以直接使用命令: docker run -it microsoft/dotnet:latest 其中 -i :表示以后台模式开始Docker Container -t

将app接口服务器改为dotnet core承载

昨天我的一个 app 的接口服务器挂掉了,国外的小鸡意外的翻车,连同程序和数据一起,猝不及防.我的服务端程序是 asp.net mvc ,小鸡是 256 M 的内存跑不了 windows 系统,装的 mono .服务器用的 jexus,但是还有一个 apache+php+mysql 的全家桶占用了 80 端口,所以这个接口是通过 apache 反向代理的. 这样一来本来环境就很复杂了,我 ubuntu 16.04 装 mono 下载了差不多700 mb 的数据,安装后体积更大,简直太不环保了,只