ฉันยังใหม่กับ 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;
}