public override void DeserializeData(BinaryReader reader, ComponentDataPool componentDataPool)
        {
            if (reader.ReadBoolean())
            {
                base.Data = null;
                return;
            }
            GenericListData <K, RawK> genericListData  = new GenericListData <K, RawK>();
            GenericListData <V>       genericListData2 = new GenericListData <V>();

            genericListData.DeserializeData(reader, componentDataPool);
            genericListData2.DeserializeData(reader, componentDataPool);
            if (genericListData.Data == null)
            {
                base.Data = null;
                return;
            }
            base.Data = new Dictionary <RawK, RawV>(genericListData.Data.Count);
            for (int i = 0; i < genericListData.Data.Count; i++)
            {
                Dictionary <RawK, RawV> data = base.Data;
                RawK key = genericListData.Data[i];
                V    v   = genericListData2.Data[i];
                data[key] = v.Data;
            }
        }
        public override void SerializeData(BinaryWriter writer, ComponentDataPool componentDataPool)
        {
            writer.Write(base.Data == null);
            if (base.Data == null)
            {
                return;
            }
            List <RawK> data  = new List <RawK>(base.Data.Keys);
            List <RawV> data2 = new List <RawV>(base.Data.Values);
            GenericListData <K, RawK> genericListData  = new GenericListData <K, RawK>(data);
            GenericListData <V, RawV> genericListData2 = new GenericListData <V, RawV>(data2);

            genericListData.SerializeData(writer, componentDataPool);
            genericListData2.SerializeData(writer, componentDataPool);
        }