.Net Core如何读取Json配置文件

介绍

在.Net Core中,我们可以使用Json文件来存储配置信息,并且通过内置的Configuration API轻松读取和使用这些配置。在本文中,我们将学习如何读取Json文件的配置。

创建Json文件

首先,我们需要创建一个Json文件,用来存储我们的配置信息。可以在任何位置创建这个文件,建议在项目根目录下创建一个名为“appsettings.json”的文件。在这个文件中,我们可以定义各种配置信息并且通过section名称来访问这些信息。

{

"Logging": {

"LogLevel": {

"Default": "Information",

"Microsoft": "Warning",

"Microsoft.Hosting.Lifetime": "Information"

}

},

"AppSettings": {

"ConnectionString": "Server=localhost;Database=mydatabase;User Id=myuser;Password=mypassword;",

"ApiUrl": "http://myapiurl.com"

}

}

说明

上述Json文件中包含了两个section:Logging和AppSettings。Logging section定义了日志记录的级别,而AppSettings section则包含了我们的配置信息。在AppSettings section中我们定义了两个配置项:ConnectionString和ApiUrl。

在应用程序中读取配置

现在我们已经定义了一个包含配置信息的Json文件,下一步是在应用程序中读取这些信息。在.Net Core中,我们使用内置的Configuration API来访问我们的配置信息。

首先,在我们的应用程序中添加Microsoft.Extensions.Configuration和Microsoft.Extensions.Configuration.Json nuget包。在我们的应用程序程序集中添加如下代码:

using Microsoft.Extensions.Configuration;

var builder = new ConfigurationBuilder()

.SetBasePath(Directory.GetCurrentDirectory())

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

.AddJsonFile($"appsettings.{Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")}.json", optional: true, reloadOnChange: true)

.AddEnvironmentVariables();

IConfiguration configuration = builder.Build();

说明

上述代码定义了一个ConfigurationBuilder。然后它通过调用SetBasePath来设置配置文件的路径。接下来,我们使用AddJsonFile方法向ConfigurationBuilder添加一个Json文件。在这里,我们指定了文件名、是否可选,以及是否在文件变更时重新加载配置。之后,我们又通过AddJsonFile方法添加了一个环境配置文件,这个文件名根据不同的环境变量而变化。最后,我们通过AddEnvironmentVariables方法来添加从环境变量中读取的配置信息。最终使用Build方法来构建一个IConfiguration实例,用来访问我们的配置信息。

读取配置信息

现在我们已经构建了IConfiguration实例,我们可以使用它来访问我们的配置信息了。我们使用GetSection方法来访问一个section下的所有配置项,并且使用GetValue方法来访问每个配置项的值。

var connectionString = configuration.GetSection("AppSettings")["ConnectionString"];

var apiUrl = configuration.GetSection("AppSettings")["ApiUrl"];

上面的代码演示了如何使用GetSection方法访问AppSettings section,并且使用[]运算符来访问每个配置项的值。我们可以通过打印出这些配置项,验证它们是否被正确读取。

Console.WriteLine($"ConnectionString: {connectionString}");

Console.WriteLine($"ApiUrl: {apiUrl}");

注意事项

需要注意的是,Configuration API默认情况下只支持读取字符串类型的配置信息,如果需要读取其他类型的配置信息,需要通过自定义转换器来实现。

结论

在本文中,我们学习了如何创建一个Json配置文件,以及如何使用Configuration API来读取这个配置文件的信息。我们可以从Json文件中读取任何配置信息,并将其显示在应用程序中。Configuration API使得读取应用程序的配置信息变得非常容易,可以帮助我们更好地管理和组织我们的应用程序的配置。

后端开发标签