Koleksi objek bersarang Hazelcast IIdentifiedDataSerializable

Saya baru mengenal Hazelcast dan mencoba memahami cara membuat serialisasi dan deserialisasi kumpulan objek bersarang dengan benar

Katakanlah saya memiliki kelas yang mirip dengan objek bersarang Serialisasi Hazelcast, tetapi saya menerapkan IIdentifiedDataSerializable sebagai gantinya

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

Saya membuatnya berfungsi dengan ReadObject dan WriteObject, namun tidak masuk ke dalam implementasi WriteData dan ReadData saya

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

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

Memanggil data baca dan tulis kelas berfungsi, tetapi bagaimana saya tahu kalau saya sudah selesai membaca alamat? misalnya

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 sumber