将动态应用程序配置绑定到.Net Core中的强类型模型中

时间:2019-12-19 12:59:30

标签: json .net-core

我正在尝试将应用程序配置绑定到强类型模型中。我的配置是动态输入的,所以我不知道如何将配置映射到模型中。下面是配置,

AppSettings.json

{
"Utility": {
    "Log": {
        "FileName": "D:\\Log.txt"
    },
    "test1": {
        "Path": "E:\\Path1",
        "Daystokeep": "0"

    },
    "test2": {
        "Path": "E:\\Path2",
        "Daystokeep": "0"
    },
    "test3": {
        "Path": "E:\\Path3",
        "Daystokeep": "0"
    }
  }
}

这里,Log是静态的,而test1,test2和test3等是动态的。如果您可以提出建议,那将非常有帮助。

1 个答案:

答案 0 :(得分:1)

只需将字典添加到配置属性;

    public class MyConfig {
        public Dictionary<string, Config> Utility { get; set; }
    }
    public class Config {
        public string Path { get; set; }
        public int Daystokeep { get; set; }
    }

您还可以将字典子类化以捕获具有固定结构的其他值;

    public UtilityConfig Utility { get; set; }

    public UtilityConfig : Dictionary<string, Config> {
        public AnotherConfigType Log { get; set; }
    }