0
オブジェクトのリストを逆シリアル化しようとすると問題が発生します。オブジェクトのすべてのプロパティは、基本クラス "BusinessObjectBaseId"によって継承されるプロパティを除いて逆シリアル化されます。なぜ "Id"プロパティは直列化解除されませんか? (以下は、私のコード/ワークフロー)C# - オブジェクトのリストの逆シリアル化は、継承されたプロパティを逆シリアル化しません。
ベース:
public abstract class BusinessObjectBaseId : BusinessObjectBase
{
[DataMember]
public virtual Guid Id { get; set; }
}
オブジェクト:
public class NameAssociation : BusinessObjectBaseId
{
[DataMember]
public string Name { get; set; }
}
JSONオブジェクト:私は呼ん
[{"Name":"Joe","Id":"10eea25b-16aa-42d6-950a-4c28cb0537f4"},{"Name":"Fred","Id":"a913f4b4-1c82-4d19-ade8-949227ac7d08"}]
:
List<NameAssociation> list = JsonConvert.DeserializeObject<List<NameAssociation>>(jsonData);
私が取り戻す:あなたは、基本クラスから[DataContract]
属性をomitttedまし
[0] : Name: Joe, Id: 00000000-0000-0000-0000-000000000000
[1] : Name: Fred, Id: 00000000-0000-0000-0000-000000000000
これは、JSON Idが文字列であるため、DTOではGUIDであるため、文字列に変更して動作するかどうかを確認してください。理想的には、dtosがjson 100%と一致するようにしてから、dtosをドメインオブジェクトにマップします。 – JOSEFtw