Nomes de parâmetros do construtor Json.net `JsonConstructor`
Ao usar um .ctor específico viaJsonConstructor
para desserializaçãoIList<ISomeInterface>
propriedades, os nomes dos parâmetros devem corresponder aooriginal Nomes Json e oJsonProperty
o mapeamento nessas propriedades não é usado.
SpokenLanguages
parâmetro é sempre nulo, pois não correspondespoken_languages
, mas existe umJsonProperty
mapeando-o:
public partial class AClass : ISomeBase
{
public AClass() { }
[JsonConstructor]
public AClass(IList<SysType> SysTypes, IList<ProductionCountry> production_countries, IList<SpokenLanguage> SpokenLanguages)
{
this.Genres = SysTypes?.ToList<IGenre>();
this.ProductionCountries = production_countries?.ToList<IProductionCountry>();
this.SpokenLanguages = SpokenLanguages?.ToList<ISpokenLanguage>();
}
public int Id { get; set; }
public IList<IGenre> Genres { get; set; }
[JsonProperty("production_countries")]
public IList<IProductionCountry> ProductionCountries { get; set; }
[JsonProperty("spoken_languages")]
public IList<ISpokenLanguage> SpokenLanguages { get; set; }
}
Isso é apenas uma "limitação" de comoJson.Net
chama o construtor ou há algo que está faltando.
FYI: Eu sou código gerando tudo isso via Rosyln e não estou olhando para gerar umJsonConverter
para cada tipo para isso ...