NetCore控制台使用配置文件

本文最后更新于:2021年9月29日 下午

关于我

作者博客|文章首发

引言

环境

.NetCore 3.1

Visual Studio 2019

本文主要针对NetCore控制台从0开始使用配置文件进行一个简要说明 ,忘给大家提供帮助。

初始化项目

新建一个控制台应用,添加Package:

1
2
3
Install-Package Microsoft.Extensions.Configuration
Install-Package Microsoft.Extensions.Configuration.Json
Install-Package Microsoft.Extensions.Configuration.Binder

新建配置文件appsetting.json,属性设置为始终复制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"Name": "张三",
"Age": 10,
"Work": {
"Company": "一公司",
"WorkYear": 5
},
"House": [
{
"Name": "一号小区",
"Address": "中国南京玄武区一号小区"
},
{
"Name": "二号小区",
"Address": "中国南京浦口区二号小区"
}
]
}

案例说明

读取json文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Program
{
static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
IConfiguration config = builder.Build();

Console.WriteLine(config["Name"]);
Console.WriteLine(config.GetSection("Name").Value);
Console.WriteLine(config.GetSection("Work:Company").Value);

Console.Read();
}
}

输出

1
2
3
张三
张三
一公司

区分不同运行时文件

在实际开始过程中,我们会将不同运行时的配置文件区分开来,这个时候可以使用如下的方式。

新建一个新的配置文件 appsettings.Development.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"Name": "张三dev",
"Age": 10,
"Work": {
"Company": "一公司dev",
"WorkYear": 5
},
"House": [
{
"Name": "一号小区dev",
"Address": "中国南京玄武区一号小区dev"
},
{
"Name": "二号小区",
"Address": "中国南京浦口区二号小区dev"
}
]

}

修改代码,新增配置文件信息。

注意:配置键相同时,读取选择最后一个添加的文件(AddJsonFile)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Program
{
static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true);

var config = builder.Build();

Console.WriteLine(config["Name"]);
Console.WriteLine(config.GetSection("Name").Value);
Console.WriteLine(config.GetSection("Work:Company").Value);

Console.Read();
}
}

使用不同方式读取配置项

1
2
3
4
5
6
Console.WriteLine(config.GetValue<int>("Work:WorkYear"));
Console.WriteLine(config["Work:WorkYear"]);
Console.WriteLine(config.GetSection("Work")["WorkYear"]);

var workM = config.GetSection("Work").Get<Work>();
Console.WriteLine(workM.Company + "|" + workM.WorkYear);

The END

以上就是控制台中使用配置文件的记录,希望对大家有所帮助。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!