.NET Core开发实战(第11课:文件配置提供程序)--学习笔记
11 | 文件配置提供程序:自由選擇配置的格式
文件配置提供程序
Microsoft.Extensions.Configuration.Ini
Microsoft.Extensions.Configuration.Json
Microsoft.Extensions.Configuration.NewtonsoftJson
Microsoft.Extensions.Configuration.Xml
Microsoft.Extensions.Configuration.UserSecrets
這些都是讀取不同文件的格式,或者從不同的位置來讀取文件
文件提供程序支持
文件是否可選
監(jiān)視文件的變更
下面通過代碼來了解這些特性
源碼鏈接:
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
{"Key1": "Value1","Key2": "Value2" }主程序
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();啟動程序,輸出如下:
Key1:Value1 Key2:Value2 Key3:Key3 不存在,所以他的值是空的
文件是否可選是它的第二個參數(shù) optional,默認情況下是 false
builder.AddJsonFile("appsettings.json", optional:false);這意味當文件不存在的時候它會報錯
它的另一個參數(shù)是 reloadOnChange, 默認情況下是 true
builder.AddJsonFile("appsettings.json", optional:false, reloadOnChange:true);這意味著每次文件變更,它會去讀取新文件
接下來看一下 appsettings.ini
Key3=Value3 in ini主程序
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();啟動程序,輸出如下:
Key1:Value1 Key2:Value2 Key3:Value3 in ini這里可以看到新添加的配置已經(jīng)生效
builder 中添加配置源是有順序關系的,后添加的配置會覆蓋先添加的配置
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的.NET Core开发实战(第11课:文件配置提供程序)--学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 运维进化论:微盟“删库跑路”给我们的启示
- 下一篇: 直接使用汇编编写 .NET Standa