前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET Core开发实战(第11课:文件配置提供程序)--学习笔记

.NET Core开发实战(第11课:文件配置提供程序)--学习笔记

作者头像
郑子铭
发布2021-01-13 15:23:19
5520
发布2021-01-13 15:23:19
举报

11 | 文件配置提供程序:自由选择配置的格式

文件配置提供程序

  • Microsoft.Extensions.Configuration.Ini
  • Microsoft.Extensions.Configuration.Json
  • Microsoft.Extensions.Configuration.NewtonsoftJson
  • Microsoft.Extensions.Configuration.Xml
  • Microsoft.Extensions.Configuration.UserSecrets

这些都是读取不同文件的格式,或者从不同的位置来读取文件

文件提供程序支持

  • 文件是否可选
  • 监视文件的变更

下面通过代码来了解这些特性

源码链接: https://github.com/witskeeper/geektime/tree/master/samples/ConfigurationFileDemo

引用以下四个包:

  • Microsoft.Extensions.Configuration
  • Microsoft.Extensions.Configuration.Abstractions
  • Microsoft.Extensions.Configuration.Ini
  • Microsoft.Extensions.Configuration.Json

读取 appsettings.json

代码语言:javascript
复制
{
  "Key1": "Value1",
  "Key2": "Value2"
}

主程序

代码语言:javascript
复制
var builder = new ConfigurationBuilder();
builder.AddJsonFile("appsettings.json");
var configurationRoot = builder.Build();

Console.WriteLine($"Key1:{configurationRoot["Key1"]}");
Console.WriteLine($"Key2:{configurationRoot["Key2"]}");
Console.WriteLine($"Key3:{configurationRoot["Key3"]}");
Console.ReadKey();

启动程序,输出如下:

代码语言:javascript
复制
Key1:Value1
Key2:Value2
Key3:

Key3 不存在,所以他的值是空的

文件是否可选是它的第二个参数 optional,默认情况下是 false

代码语言:javascript
复制
builder.AddJsonFile("appsettings.json", optional:false);

这意味当文件不存在的时候它会报错

它的另一个参数是 reloadOnChange, 默认情况下是 true

代码语言:javascript
复制
builder.AddJsonFile("appsettings.json", optional:false, reloadOnChange:true);

这意味着每次文件变更,它会去读取新文件

接下来看一下 appsettings.ini

代码语言:javascript
复制
Key3=Value3 in ini

主程序

代码语言:javascript
复制
var builder = new ConfigurationBuilder();
builder.AddJsonFile("appsettings.json", optional:false, reloadOnChange:true);
builder.AddIniFile("appsettings.ini");
var configurationRoot = builder.Build();

Console.WriteLine($"Key1:{configurationRoot["Key1"]}");
Console.WriteLine($"Key2:{configurationRoot["Key2"]}");
Console.WriteLine($"Key3:{configurationRoot["Key3"]}");
Console.ReadKey();

启动程序,输出如下:

代码语言:javascript
复制
Key1:Value1
Key2:Value2
Key3:Value3 in ini

这里可以看到新添加的配置已经生效

builder 中添加配置源是有顺序关系的,后添加的配置会覆盖先添加的配置

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 11 | 文件配置提供程序:自由选择配置的格式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档