Здравствуйте, я использую json
файл конфигурации в .NET Core App
, и я не понимаю, почему я получаю нулевое значение для подразделов, которые являются объектами:
{
"tt": {
"aa":3,
"x":4
},
"Url":333,
"Config": {
"Production": {
"RedisAddress": {
"Hostname": "redis0",
"Port": 6379
},
"OwnAddress": {
"Hostname": "0.0.0.0",
"Port": 9300
}
},
"Dev": {
"RedisAddress": {
"Hostname": "redis0",
"Port": 6379
},
"OwnAddress": {
"Hostname": "0.0.0.0",
"Port": 9300
},
"Logger": "logger.txt"
}
}
}
Когда я пытаюсь GetSection("Config")
или GetSection("tt")
я получаю значение null
. Однако он возвращает значение для примитивных типов, как в моем случае Url
.
Что забавно, если я загляну внутрь configuration.Providers[0].Data
, у меня есть всесодержимое присутствует как на картинке:
![enter image description here](https://i.stack.imgur.com/DZAfA.png)
Почему он возвращает ноль для object
типов?
Код
WebHostBuilder builder = new WebHostBuilder();
builder.UseStartup<Startup>();
string appPath = AppDomain.CurrentDomain.BaseDirectory;
string jsonPath = Path.Combine(Directory.GetParent(Directory.GetParent(appPath).FullName).FullName, "appsettings.json");
IConfiguration configuration = new ConfigurationBuilder()
.SetBasePath(appPath)
.AddJsonFile(jsonPath, optional: true, reloadOnChange: true)
.Build();
var sect = configuration.GetSection("Config");//has value null
var sect2 = configuration.GetSection("tt");//has value null
var sect3 = configuration.GetSection("Url"); has value 333