Я новичок в 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;
}