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 источник