public override bool Serialize(ref PacketOutStream Data) { if (val is Dictionary <long, ISerializablePacket> ) { Dictionary <long, ISerializablePacket> Dic = val as Dictionary <long, ISerializablePacket>; int KeyType = (int)EPacketFieldType.Unsigned7BitEncoded; int ValueType = (int)EPacketFieldType.Packet; int Count = Dic.Count; if (Count <= 0) { return(false); } long DicData; PacketOutStream.Encode3Parameters(out DicData, KeyType, ValueType, Count); Data.WriteEncoded7Bit(DicData); foreach (KeyValuePair <long, ISerializablePacket> KP in Dic) { PacketProcessor.WriteField(ref Data, (EPacketFieldType)KeyType, KP.Key); PacketProcessor.WriteField(ref Data, (EPacketFieldType)ValueType, KP.Value); } return(true); } return(false); }