Je rencontre un problème lorsque je tente de désérialiser une liste d'objets. Toutes les propriétés de l'objet sont désérialisées, à l'exception des propriétés héritées par ma classe de base "BusinessObjectBaseId". Pourquoi la propriété "Id" ne serait-elle pas désérialisée? (Ce qui suit est mon code/flux de travail)C# - Désérialisation de la liste d'objets, ne désérialise pas les propriétés héritées
Base
public abstract class BusinessObjectBaseId : BusinessObjectBase
{
[DataMember]
public virtual Guid Id { get; set; }
}
Objet:
public class NameAssociation : BusinessObjectBaseId
{
[DataMember]
public string Name { get; set; }
}
Json Objet:
[{"Name":"Joe","Id":"10eea25b-16aa-42d6-950a-4c28cb0537f4"},{"Name":"Fred","Id":"a913f4b4-1c82-4d19-ade8-949227ac7d08"}]
J'appelle:
List<NameAssociation> list = JsonConvert.DeserializeObject<List<NameAssociation>>(jsonData);
Je reviens:
[0] : Name: Joe, Id: 00000000-0000-0000-0000-000000000000
[1] : Name: Fred, Id: 00000000-0000-0000-0000-000000000000
peut-être parce que dans l'ID JSON est une chaîne, dans votre DTO c'est un GUID, essayez de le changer en chaîne et voir si cela fonctionne. Idéalement, vous voulez que le dtos corresponde au json 100% et que vous liez ensuite les dtos aux objets du domaine. – JOSEFtw