首页 > 解决方案 > Microsoft.Configuration.Extensions:如何获取节/复杂值作为 json 字符串?

问题描述

当我们有这样的配置时

// appsettings.json
{
    "SomeServiceConfiguration": {
       "Server": "127.0.0.1",
       "Port": "25"
    }
}

可以使用绑定来访问数据:

IConfiguration configuration =  ...;
var section = configuration.GetSection("SomeServiceConfiguration");
var val = section.Value; // this is null
var t = new SomeServiceConfiguration();
section.Bind(t);

但是是否有可能获得 “就像字符串一样”的值(部分内容) (事实上是 json){"Server": "127.0.0.1", "Port": "25"}

标签: c#.net-coreconfiguration-files

解决方案


按照ConfigurationSection Class这个直接是不可能的。

ConfigurationElement.SerializeElement(XmlWriter, Boolean)但是,您可以使用Method序列化为 XML ,这在默认情况下是可行的。之后您必须转换为 JSON,所以这似乎有点矫枉过正。

我建议构建一个新的JSON Object并直接访问部分值。


推荐阅读