无法通过ConfigurationSettings设置嵌套的json值

时间:2018-02-07 05:36:58

标签: c# dependency-injection configurationsection

我在XYZ包中有一个课说:

public class Temp
{
    string a;
    string b;
    string c; 
 }

同一个包中的另一个类:

public class Other
{
    public int id {get; set;}
    public Temp temp {get;set;}
}

现在,其他类的Tempid变量的值来自另一个项目的appsettings.json,如下所示:

...some settings
"Other":{
  "id":2
 "Temp":{
  "a":"Hey",
  "b":"Hello",
  "c":"Bye"
 }
},
...rest of the settings

现在,在包扩展类中,我试图将值设置为:

id = configuration.GetValue<int>("Other:id"); // 2 here
Temp = configuration.GetValue<Temp>("Other:Temp");  //null here

不确定为什么这个值没有设定。

我尝试过:Temp = configuration.GetSection("Other:Temp")但是无法将其转换为Temp类型的实例。

有没有办法实现这个目标? 提前谢谢。

1 个答案:

答案 0 :(得分:0)

通过添加:

解决了这个问题
Temp = new Temp
{
   a = configuration.Get<string>("Other:Temp:a"),
   b = configuration.Get<string>("Other:Temp:b"),
   c = configuration.Get<string>("Other:Temp:c")
}