从 appsettings.json 配置文件中读取
Read from appsettings.json config file
我的 appsettings.json 文件
中有以下配置
{
"AppSettings": {
"MainUser": {
"Name": "Urs",
"Surname": "Barandun",
"SesstionTimeInMin": "30",
}
},
我想创建自定义配置 class 并绑定它。例如:
MainUserConfiguration mainUserConfiguration = new MainUserConfiguration();
var configSection = config.GetSection("MainUserConfiguration");
configSection.Bind(mainUserConfiguration);
但是,我的代码不起作用。 :/
根据您提供的内容,您的 appsettings 文件和配置的嵌套 JSON 不匹配。一个典型的 ASP.NET 核心 appsettings.json
没有一个名为“AppSettings”的嵌套元素,而且你会得到一个名为“MainUserConfiguration”的配置部分,而你的实际 JSON 只是命名该部分“主要用户”。
应用程序设置示例:
{
"MyFirstClass": {
"Option1": "some string value",
"Option2": 42
},
"MySecondClass": {
"SettingOne": "some string value",
"SettingTwo": 42
}
}
在您的代码中:
public class MyFirstClass
{
public string Option1 { get; set; }
public int Option2 { get; set; }
}
public class MySecondClass
{
public string SettingOne { get; set; }
public int SettingTwo { get; set; }
}
在您的 Startup.cs 中(假设这是您使用定义的 Configuration
对象访问它的地方:
var myFirstClass = Configuration.GetSection("MyFirstClass").Get<MyFirstClass>();
var mySecondClass = Configuration.GetSection("MySecondClass").Get<MySecondClass>();
Console.WriteLine($"The answer is always {myFirstClass.Option2}");
我的 appsettings.json 文件
中有以下配置 {
"AppSettings": {
"MainUser": {
"Name": "Urs",
"Surname": "Barandun",
"SesstionTimeInMin": "30",
}
},
我想创建自定义配置 class 并绑定它。例如:
MainUserConfiguration mainUserConfiguration = new MainUserConfiguration();
var configSection = config.GetSection("MainUserConfiguration");
configSection.Bind(mainUserConfiguration);
但是,我的代码不起作用。 :/
根据您提供的内容,您的 appsettings 文件和配置的嵌套 JSON 不匹配。一个典型的 ASP.NET 核心 appsettings.json
没有一个名为“AppSettings”的嵌套元素,而且你会得到一个名为“MainUserConfiguration”的配置部分,而你的实际 JSON 只是命名该部分“主要用户”。
应用程序设置示例:
{
"MyFirstClass": {
"Option1": "some string value",
"Option2": 42
},
"MySecondClass": {
"SettingOne": "some string value",
"SettingTwo": 42
}
}
在您的代码中:
public class MyFirstClass
{
public string Option1 { get; set; }
public int Option2 { get; set; }
}
public class MySecondClass
{
public string SettingOne { get; set; }
public int SettingTwo { get; set; }
}
在您的 Startup.cs 中(假设这是您使用定义的 Configuration
对象访问它的地方:
var myFirstClass = Configuration.GetSection("MyFirstClass").Get<MyFirstClass>();
var mySecondClass = Configuration.GetSection("MySecondClass").Get<MySecondClass>();
Console.WriteLine($"The answer is always {myFirstClass.Option2}");