无法通过 ConfigurationSettings 设置嵌套的 json 值
Unable to set nested json value via ConfigurationSettings
我在包裹 XYZ 中有一个 class 说:
public class Temp
{
string a;
string b;
string c;
}
同一包裹中的另一个 class:
public class Other
{
public int id {get; set;}
public Temp temp {get;set;}
}
现在 Temp
和 id
变量的值 class 其他来自另一个项目的 appsettings.json
看起来像:
...some settings
"Other":{
"id":2
"Temp":{
"a":"Hey",
"b":"Hello",
"c":"Bye"
}
},
...rest of the settings
现在,在包扩展 class 中,我尝试将值设置为:
id = configuration.GetValue<int>("Other:id"); // 2 here
Temp = configuration.GetValue<Temp>("Other:Temp"); //null here
不确定为什么没有设置此值。
我试过:Temp = configuration.GetSection("Other:Temp")
但无法将其转换为 Temp 类型的实例。
有什么办法可以实现吗?
提前致谢。
通过添加修复此问题:
Temp = new Temp
{
a = configuration.Get<string>("Other:Temp:a"),
b = configuration.Get<string>("Other:Temp:b"),
c = configuration.Get<string>("Other:Temp:c")
}
我在包裹 XYZ 中有一个 class 说:
public class Temp
{
string a;
string b;
string c;
}
同一包裹中的另一个 class:
public class Other
{
public int id {get; set;}
public Temp temp {get;set;}
}
现在 Temp
和 id
变量的值 class 其他来自另一个项目的 appsettings.json
看起来像:
...some settings
"Other":{
"id":2
"Temp":{
"a":"Hey",
"b":"Hello",
"c":"Bye"
}
},
...rest of the settings
现在,在包扩展 class 中,我尝试将值设置为:
id = configuration.GetValue<int>("Other:id"); // 2 here
Temp = configuration.GetValue<Temp>("Other:Temp"); //null here
不确定为什么没有设置此值。
我试过:Temp = configuration.GetSection("Other:Temp")
但无法将其转换为 Temp 类型的实例。
有什么办法可以实现吗? 提前致谢。
通过添加修复此问题:
Temp = new Temp
{
a = configuration.Get<string>("Other:Temp:a"),
b = configuration.Get<string>("Other:Temp:b"),
c = configuration.Get<string>("Other:Temp:c")
}