Hazelcast IIdentifiedDataSerializable คอลเลกชันของวัตถุที่ซ้อนกัน

ฉันยังใหม่กับ Hazelcast และกำลังพยายามทำความเข้าใจวิธีการซีเรียลไลซ์และดีซีเรียลไลซ์คอลเลกชันของอ็อบเจ็กต์ที่ซ้อนกันอย่างถูกต้อง

สมมติว่าฉันมีคลาสที่คล้ายกับ วัตถุที่ซ้อนกันของ Hazelcast Serialization แต่ฉันใช้ IIdentifiedDataSerializable แทน

class Customer : IIdentifiedDataSerializable
{
    int Id { get; set; }
    List<Address> Addresses  { get; set; }
    CustomerDetails Details  { get; set; }
}

ฉันได้มันมาเพื่อใช้งานกับ ReadObject และ WriteObject แต่มันไม่ได้ก้าวไปสู่การใช้งาน WriteData และ ReadData ของฉัน

// this works fine
output.WriteObject(Addresses);

// successfully get my collection back
Addresses = input.ReadObject<List<Address>>();

การเรียกใช้งานการอ่านข้อมูลและเขียนข้อมูลของชั้นเรียน แต่ฉันจะรู้ได้อย่างไรว่าเมื่ออ่านที่อยู่เสร็จแล้ว เช่น.

public void ReadData(IObjectDataInput input)
{
    Id = input.ReadInt();

    // pseudo code works, but how do I know when to move on?
    loop
    {
        var addr = new Address();
        addr.ReadData(input);
        Addresses.Add(addr);
    }

    var detail = new CustomerDetails();
    detail.ReadData(input);
    Details = detail;
}

person Jason    schedule 02.11.2020    source แหล่งที่มา