A configuração fortemente tipada no .NET Core ignora o atributo JsonProperty

Eu tenho jogado com configuração fortemente tipada no .NET Core e encontrei algunsesquisito comportamento.

POCO

public class ModuleConfiguration
{
    [JsonProperty("menu")]
    public List<MenuItem> MenuItems { get; set; }
}

Settings.json

{
  "moduleConfiguration": {
    "menu": [
      {
        "id": 1,
        "name": "test"
      }
    ]
  }
}

Quando eu carrego a configuração:

var builder = new ConfigurationBuilder().AddJsonFile(path);
var config = builder.Build().GetSection("moduleConfiguration").Get<T>();

aItens do menu coleção é nula, mas se eu alterar "menu" para "menuItems" (em settings.json), a coleção será preenchida corretamente.

Isso significa queJsonProperty atributo está sendo ignorado?

obrigado

questionAnswers(1)

yourAnswerToTheQuestion