Ich habe ein Problem, wenn ich versuche, eine Liste von Objekten zu deserialisieren. Alle Eigenschaften im Objekt werden außer für die Eigenschaften, die von meiner Basisklasse "BusinessObjectBaseId" übernommen werden, deserialisiert. Warum sollte die Eigenschaft "Id" nicht deserialisiert werden? (In der folgenden ist mein Code/Workflow)C# - Deserialisierung der Objektliste, deserialisiert die geerbten Eigenschaften nicht
Basis:
public abstract class BusinessObjectBaseId : BusinessObjectBase
{
[DataMember]
public virtual Guid Id { get; set; }
}
Objekt:
public class NameAssociation : BusinessObjectBaseId
{
[DataMember]
public string Name { get; set; }
}
Json Objekt:
[{"Name":"Joe","Id":"10eea25b-16aa-42d6-950a-4c28cb0537f4"},{"Name":"Fred","Id":"a913f4b4-1c82-4d19-ade8-949227ac7d08"}]
Ich nenne:
List<NameAssociation> list = JsonConvert.DeserializeObject<List<NameAssociation>>(jsonData);
ich zurück:
[0] : Name: Joe, Id: 00000000-0000-0000-0000-000000000000
[1] : Name: Fred, Id: 00000000-0000-0000-0000-000000000000
es könnte sein, weil in der JSON-Id eine Zeichenfolge ist, in Ihrem DTO ist es eine GUID, versuchen Sie es in Zeichenfolge ändern und sehen, ob es funktioniert. Im Idealfall möchten Sie, dass die dtos mit dem JSON 100% übereinstimmen, und dann würden Sie die DtOs Domänenobjekten zuordnen. – JOSEFtw