public static ComplexData Deserialize(BinaryReader r) { { bool isNotNull = r.ReadBoolean(); if (!isNotNull) { return(null); } } var ret = new ComplexData(); ret.SomeByte = r.ReadByte(); ret.SomeShort = r.ReadInt16(); ret.SomeUShort = r.ReadUInt16(); ret.SomeInt = r.ReadInt32(); ret.SomeUInt = r.ReadUInt32(); ret.SomeLong = r.ReadInt64(); ret.SomeULong = r.ReadUInt64(); ret.SomeString = StringSerializer.Deserialize(r); { if (!r.ReadBoolean()) { ret.SomeArrString = null; } else { int lenght = r.ReadInt32(); var list = new List <String>(lenght); for (int i = 0; i < lenght; i++) { var x = StringSerializer.Deserialize(r); list.Add(x); } ret.SomeArrString = list; } } { if (!r.ReadBoolean()) { ret.SomeArrRec = null; } else { int lenght = r.ReadInt32(); var list = new List <SubData>(lenght); for (int i = 0; i < lenght; i++) { var x = SubDataSerializer.Deserialize(r); list.Add(x); } ret.SomeArrRec = list; } } return(ret); }
public static void Serialize(ComplexData x, BinaryWriter w) { if (x == null) { w.Write(false); return; } w.Write(true); w.Write(x.SomeByte); w.Write(x.SomeShort); w.Write(x.SomeUShort); w.Write(x.SomeInt); w.Write(x.SomeUInt); w.Write(x.SomeLong); w.Write(x.SomeULong); StringSerializer.Serialize(x.SomeString, w); if (x.SomeArrString != null) { w.Write(true); w.Write((int)x.SomeArrString.Count); foreach (var element in x.SomeArrString) { StringSerializer.Serialize(element, w); } } else { w.Write(false); } if (x.SomeArrRec != null) { w.Write(true); w.Write((int)x.SomeArrRec.Count); foreach (var element in x.SomeArrRec) { SubDataSerializer.Serialize(element, w); } } else { w.Write(false); } }
public override void Serialize(BinaryWriter w) { base.Serialize(w); w.Write(requestId); ComplexDataSerializer.Serialize(data, w); StringSerializer.Serialize(name, w); if (datas != null) { w.Write(true); w.Write((int)datas.Count); foreach (var element in datas) { SubDataSerializer.Serialize(element, w); } } else { w.Write(false); } }
public override void Deserialize(BinaryReader r) { base.Deserialize(r); requestId = r.ReadInt32(); data = ComplexDataSerializer.Deserialize(r); name = StringSerializer.Deserialize(r); { if (!r.ReadBoolean()) { datas = null; } else { int lenght = r.ReadInt32(); var list = new List <SubData>(lenght); for (int i = 0; i < lenght; i++) { var x = SubDataSerializer.Deserialize(r); list.Add(x); } datas = list; } } }