示例#1
0
        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);
        }
示例#2
0
 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);
     }
 }
示例#3
0
 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);
     }
 }
示例#4
0
 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;
         }
     }
 }