appSettings.json 中的自定义键在 ASP.NET Core 2.0 中不起作用

编程代码JS

1个回答

写回答

WXJ123457

2025-06-14 13:25

+ 关注

JS
JS

在ASP.NET Core 2.0中,appSettings.JSon是一个非常常用的配置文件。它允许我们将应用程序的配置信息以键值对的形式存储在一个JSON文件中。然而,在某些情况下,我们可能会遇到一个问题,就是自定义键在appSettings.JSon中不起作用。本文将探讨这个问题,并提供解决方案。

首先,让我们来看一个例子。假设我们有一个名为"appSettings.JSon"的配置文件,内容如下:

JSon

{

"ConnectionStrings": {

"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;MultipleActiveResultSets=true"

},

"CustomSettings": {

"Key1": "Value1",

"Key2": "Value2"

}

}

我们可以使用以下代码来读取这些配置:

csharp

using Microsoft.Extensions.Configuration;

var config = new ConfigurationBuilder()

.SetBasePath(Directory.GetcurrentDirectory())

.AddJSonFile("appSettings.JSon")

.Build();

var connectionString = config.GetconnectionString("DefaultConnection");

var customSetting1 = config.GetValue<string>("CustomSettings:Key1");

var customSetting2 = config.GetValue<string>("CustomSettings:Key2");

在这个例子中,我们试图通过config.GetconnectionString方法和config.GetValue方法读取配置文件中的值。然而,有时我们会发现自定义键在这些方法中不起作用,返回的值为空。

造成这个问题的原因是,ASP.NET Core 2.0只会加载配置文件中的一级键。也就是说,只有一级键会被添加到配置中心,而深层次的嵌套键将被忽略。这就是为什么我们无法直接通过config.GetValue("CustomSettings:Key1")来获取值。

为了解决这个问题,我们可以使用Configuration.GetSection方法来获取一个配置节。然后,我们可以使用Get方法将配置节绑定到一个对象上,从而获取我们想要的值。

让我们修改上面的代码来解决这个问题:

csharp

public class CustomSettings

{

public string Key1 { get; set; }

public string Key2 { get; set; }

}

var config = new ConfigurationBuilder()

.SetBasePath(Directory.GetcurrentDirectory())

.AddJSonFile("appSettings.JSon")

.Build();

var connectionString = config.GetconnectionString("DefaultConnection");

var customSettings = new CustomSettings();

config.GetSection("CustomSettings").Bind(customSettings);

var customSetting1 = customSettings.Key1;

var customSetting2 = customSettings.Key2;

在这个例子中,我们首先定义了一个名为CustomSettings的类,用于存储我们想要的配置值。然后,我们使用GetSection方法获取配置节,并使用Bind方法将配置节绑定到customSettings对象上。最后,我们可以通过customSettings.Key1customSettings.Key2来获取我们想要的值。

解决自定义键不起作用的问题

通过上面的例子,我们成功地解决了自定义键不起作用的问题。我们可以使用GetSectionBind方法来获取和绑定深层次的嵌套键。这种方法在ASP.NET Core 2.0中非常有效,并且可以帮助我们充分利用appSettings.JSon中的配置信息。

在ASP.NET Core 2.0中,自定义键在appSettings.JSon中不起作用的问题可以通过使用GetSectionBind方法来解决。我们可以将配置节绑定到一个对象上,从而获取我们想要的值。这种方法非常简单有效,可以帮助我们在应用程序中轻松地使用appSettings.JSon中的配置信息。

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号