ASP.NETCore如何高效读取配置文件,实现灵活配置管理?

2026-03-30 10:521阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计973个文字,预计阅读时间需要4分钟。

ASP.NETCore如何高效读取配置文件,实现灵活配置管理?

在ASP.NET Core中,可以使用`ConfigurationBuilder`对象来构建配置。主要分为三部分:配置数据源、`ConfigurationBuilder`的使用、以及配置数据源的使用。

1. 配置数据源:数据源可以是字典或配置文件。数据源需要实现`IConfigurationSource`接口,并从配置文件或字典中提取配置信息。

2.使用`ConfigurationBuilder`:通过`ConfigurationBuilder`可以添加、移除或修改配置数据源。

3.配置数据源的使用:配置数据源可以是自带的字典或外部配置文件,如JSON、XML或INI文件。这些文件需要遵循一定的格式,以便`ConfigurationBuilder`能正确解析。

ASP.NET Core 中,可以使用 ConfigurationBuilder 对象来构建。

主要分为三部:配置数据源 -> ConfigurationBuilder -> 使用。

数据源可来自字典或配置文件。

数据源要么继承 IConfigurationSource ,要么从配置文件中读取。

1,来自字典

我们先使用字典存储键值对,来设置配置,test = 配置,然后使用ConfigurationBuilder.Add()方法添加数据源,Add方法可以添加继承了IConfigurationSource的数据源。

MemoryConfigurationSource继承了IConfigurationSource,使用字典作为数据源。

var dic = new Dictionary<string, string>() { ["test"] = "配置" }; var config = new ConfigurationBuilder() .Add(new MemoryConfigurationSource() { InitialData = dic }).Build(); string test = config["test"];

老是 new 不太爽,可以使用下面的方法来读取字典中的数据源:

var dic = new Dictionary<string, string>() { ["test"] = "配置" }; var config = new ConfigurationBuilder() .AddInMemoryCollection(dic) .Build(); string test = config["test"];

2,来自配置文件

假如在 项目根目录下创建一个 json 文件,内容如下:

{ "test":"配置" }

那么可以这样读取配置:

var config = new ConfigurationBuilder() .AddJsonFile("test.json") .Build(); string test = config["test"]; Console.WriteLine(test);

如果配置文件不在根目录下,则可以使用SetBasePath()来定义路径,示例如下:

ASP.NETCore如何高效读取配置文件,实现灵活配置管理?

var config = new ConfigurationBuilder() .SetBasePath("E:\\test\\aaa") .AddJsonFile("test.json") .Build();

上面看到,获取配置项是非常简单的,config["{KeyName}"]即可获得value

另外,可以监控 json 文件,当 json 文件发生更改时,主动更新。

config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

3,层次结构

配置数据源可以有层次结构。

ASP.NET Core 中,都会有个 appsettings.json 文件,其内容如下:

{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } } }

那么我们使用时,可以使用:符号获取下一层子项的配置。

var config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); string test = config["Logging:LogLevel:Default"];

如果你只想 获取 json 文件中LogLevel部分的配置,可以使用GetSection()方法。

var config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build() .GetSection("Logging:LogLevel"); string test = config["Default"];

通过 json 配置文件,我们可以很方便地构建层级结构的配置,如果想在字典中存储,可以使用 "{k1}:{k2}" 这种形式存。例如:

var dic = new Dictionary<string, string>() { ["testParent:Child1"] = "6", ["testParent:Child2"] = "666" }; var config = new ConfigurationBuilder() .AddInMemoryCollection(dic) .Build().GetSection("testParent"); string test = config["Child1"];

4,映射

我们可以使用Get<>()方法,将配置映射为对象。

public class TestOptions { public string A { get; set; } public string B { get; set; } public string C { get; set; } }

var dic = new Dictionary<string, string>() { ["A"] = "6", ["B"] = "66", ["C"] = "666" }; TestOptions config = new ConfigurationBuilder() .AddInMemoryCollection(dic) .Build().Get<TestOptions>();

到此这篇关于ASP.NET Core读取配置文件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。

本文共计973个文字,预计阅读时间需要4分钟。

ASP.NETCore如何高效读取配置文件,实现灵活配置管理?

在ASP.NET Core中,可以使用`ConfigurationBuilder`对象来构建配置。主要分为三部分:配置数据源、`ConfigurationBuilder`的使用、以及配置数据源的使用。

1. 配置数据源:数据源可以是字典或配置文件。数据源需要实现`IConfigurationSource`接口,并从配置文件或字典中提取配置信息。

2.使用`ConfigurationBuilder`:通过`ConfigurationBuilder`可以添加、移除或修改配置数据源。

3.配置数据源的使用:配置数据源可以是自带的字典或外部配置文件,如JSON、XML或INI文件。这些文件需要遵循一定的格式,以便`ConfigurationBuilder`能正确解析。

ASP.NET Core 中,可以使用 ConfigurationBuilder 对象来构建。

主要分为三部:配置数据源 -> ConfigurationBuilder -> 使用。

数据源可来自字典或配置文件。

数据源要么继承 IConfigurationSource ,要么从配置文件中读取。

1,来自字典

我们先使用字典存储键值对,来设置配置,test = 配置,然后使用ConfigurationBuilder.Add()方法添加数据源,Add方法可以添加继承了IConfigurationSource的数据源。

MemoryConfigurationSource继承了IConfigurationSource,使用字典作为数据源。

var dic = new Dictionary<string, string>() { ["test"] = "配置" }; var config = new ConfigurationBuilder() .Add(new MemoryConfigurationSource() { InitialData = dic }).Build(); string test = config["test"];

老是 new 不太爽,可以使用下面的方法来读取字典中的数据源:

var dic = new Dictionary<string, string>() { ["test"] = "配置" }; var config = new ConfigurationBuilder() .AddInMemoryCollection(dic) .Build(); string test = config["test"];

2,来自配置文件

假如在 项目根目录下创建一个 json 文件,内容如下:

{ "test":"配置" }

那么可以这样读取配置:

var config = new ConfigurationBuilder() .AddJsonFile("test.json") .Build(); string test = config["test"]; Console.WriteLine(test);

如果配置文件不在根目录下,则可以使用SetBasePath()来定义路径,示例如下:

ASP.NETCore如何高效读取配置文件,实现灵活配置管理?

var config = new ConfigurationBuilder() .SetBasePath("E:\\test\\aaa") .AddJsonFile("test.json") .Build();

上面看到,获取配置项是非常简单的,config["{KeyName}"]即可获得value

另外,可以监控 json 文件,当 json 文件发生更改时,主动更新。

config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);

3,层次结构

配置数据源可以有层次结构。

ASP.NET Core 中,都会有个 appsettings.json 文件,其内容如下:

{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } } }

那么我们使用时,可以使用:符号获取下一层子项的配置。

var config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build(); string test = config["Logging:LogLevel:Default"];

如果你只想 获取 json 文件中LogLevel部分的配置,可以使用GetSection()方法。

var config = new ConfigurationBuilder() .AddJsonFile("appsettings.json") .Build() .GetSection("Logging:LogLevel"); string test = config["Default"];

通过 json 配置文件,我们可以很方便地构建层级结构的配置,如果想在字典中存储,可以使用 "{k1}:{k2}" 这种形式存。例如:

var dic = new Dictionary<string, string>() { ["testParent:Child1"] = "6", ["testParent:Child2"] = "666" }; var config = new ConfigurationBuilder() .AddInMemoryCollection(dic) .Build().GetSection("testParent"); string test = config["Child1"];

4,映射

我们可以使用Get<>()方法,将配置映射为对象。

public class TestOptions { public string A { get; set; } public string B { get; set; } public string C { get; set; } }

var dic = new Dictionary<string, string>() { ["A"] = "6", ["B"] = "66", ["C"] = "666" }; TestOptions config = new ConfigurationBuilder() .AddInMemoryCollection(dic) .Build().Get<TestOptions>();

到此这篇关于ASP.NET Core读取配置文件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持自由互联。