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;
}