初學(xué).Net Core,很多細節(jié)還不熟悉初嘹,打算一步一步來學(xué)刨晴,能學(xué)多少就看時間有多少,時間就像海綿里的水蓬抄,擠一擠總還是有的嘛。
.Net Core讀取配置文件相較于以往的方式還是有很大的不同夯到,以往的方式大多要引用System.Configuration 這個類庫嚷缭,且內(nèi)容要寫在app.setting配置文件中才可操作,然后使用底層提供的方法.getConfiguration || .getAppsetting來得到我們需要的數(shù)據(jù)耍贾。
.NetCore讀取文件就有了很大的不同阅爽,其中變化明顯的就是,文件使用Json格式保存荐开,可以自定義名稱和內(nèi)部結(jié)構(gòu)付翁,讀取也相當方便,使用層級結(jié)構(gòu)的方式一步一步讀取誓焦。
一般讀取配置文件的方式不做演示,可自行百度着帽,主要通過倆種方式對讀取方式進行說明
第一種方式
第一步
首先新建一個.netcore 控制臺應(yīng)用
第二步
安裝 Microsoft.AspNetCore 組件
Install-Package Microsoft.AspNetCore
第三步
新建一個.json文件杂伟,填寫內(nèi)容并配置屬性
jsconfig1.json內(nèi)容
{
"name": "zhb",
"age": "10"
}
第四步
static void Main(string[] args)
{
var builder = new ConfigurationBuilder();
builder.AddJsonFile("jsconfig1.json");
var configuration = builder.Build();
Console.WriteLine($"name:{configuration["name"]} age:{configuration["age"]}");
Console.Read();
}
通過這種方式,只需要對json文件進行添加仍翰,然后就可以通過configuration變量對內(nèi)容操作赫粥,configuration["name"]就代表得到當前json文件key="name" 的值,特別容易理解
第二種方式
與一種方式其他并無太大差別予借,只是引用了其他的組件庫
Nuget 類庫引用
需要 Nuget 兩個類庫:
①Microsoft.Extensions.Configuration
②Microsoft.Extensions.Configuration.Json
json文件配置
appsettings.json
{
"name": "wen",
"age": 26,
"family": {
"mother": {
"name": "娘",
"age": 55
},
"father": {
"name": "爹",
"age": 56
}
}
}
方法體
static void Main(string[] args)
{
//添加 json 文件路徑
var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json");
//創(chuàng)建配置根對象
var configurationRoot = builder.Build();
//取配置根下的 name 部分
var nameSection = configurationRoot.GetSection("name");
//取配置根下的 family 部分
var familySection = configurationRoot.GetSection("family");
//取 family 部分下的 mother 部分下的 name 部分
var motherNameSection = familySection.GetSection("mother").GetSection("name");
//取 family 部分下的 father 部分下的 age 部分
var fatherAgeSection = familySection.GetSection("father").GetSection("age");
//Value 為文本值
Console.WriteLine($"name: {nameSection.Value}");
Console.WriteLine($"motherName: {motherNameSection.Value}");
Console.WriteLine($"fatherAge: {fatherAgeSection.Value}");
Console.Read();
}