/// <summary> /// 反序列化 /// </summary> /// <param name="_deSerializer_">对象反序列化器</param> public unsafe void DeSerialize(fastCSharp.emit.dataDeSerializer _deSerializer_) { _deSerializer_.AddPoint(this); if (_deSerializer_.CheckMemberCount(1073741855)) { byte *_read_ = _deSerializer_.Read; byte *_nullMap_ = _read_; _read_ += 4; if ((_nullMap_[2 >> 3] & (1 << (2 & 7))) != 0) { GuidNull = null; } else { GuidNull = (*(System.Guid *)_read_); _read_ += sizeof(System.Guid); } if ((_nullMap_[3 >> 3] & (1 << (3 & 7))) != 0) { DecimalNull = null; } else { DecimalNull = (*(decimal *)_read_); _read_ += sizeof(decimal); } { Guid = (*(System.Guid *)_read_); _read_ += sizeof(System.Guid); } { Decimal = (*(decimal *)_read_); _read_ += sizeof(decimal); } if ((_nullMap_[4 >> 3] & (1 << (4 & 7))) != 0) { LongNull = null; } else { LongNull = (*(long *)_read_); _read_ += sizeof(long); } { Long = (*(long *)_read_); _read_ += sizeof(long); } if ((_nullMap_[5 >> 3] & (1 << (5 & 7))) != 0) { DoubleNull = null; } else { DoubleNull = (*(double *)_read_); _read_ += sizeof(double); } { Double = (*(double *)_read_); _read_ += sizeof(double); } if ((_nullMap_[6 >> 3] & (1 << (6 & 7))) != 0) { DateTimeNull = null; } else { DateTimeNull = (*(System.DateTime *)_read_); _read_ += sizeof(System.DateTime); } if ((_nullMap_[7 >> 3] & (1 << (7 & 7))) != 0) { ULongNull = null; } else { ULongNull = (*(ulong *)_read_); _read_ += sizeof(ulong); } { ULong = (*(ulong *)_read_); _read_ += sizeof(ulong); } { DateTime = (*(System.DateTime *)_read_); _read_ += sizeof(System.DateTime); } if ((_nullMap_[8 >> 3] & (1 << (8 & 7))) != 0) { IntNull = null; } else { IntNull = (*(int *)_read_); _read_ += sizeof(int); } { Int = (*(int *)_read_); _read_ += sizeof(int); } if ((_nullMap_[9 >> 3] & (1 << (9 & 7))) != 0) { UIntNull = null; } else { UIntNull = (*(uint *)_read_); _read_ += sizeof(uint); } if ((_nullMap_[10 >> 3] & (1 << (10 & 7))) != 0) { FloatNull = null; } else { FloatNull = (*(float *)_read_); _read_ += sizeof(float); } { Float = (*(float *)_read_); _read_ += sizeof(float); } { UInt = (*(uint *)_read_); _read_ += sizeof(uint); } { UShort = (*(ushort *)_read_); _read_ += sizeof(ushort); } if ((_nullMap_[11 >> 3] & (1 << (11 & 7))) != 0) { ShortNull = null; } else { ShortNull = (*(short *)_read_); _read_ += sizeof(short); } { Short = (*(short *)_read_); _read_ += sizeof(short); } if ((_nullMap_[12 >> 3] & (1 << (12 & 7))) != 0) { CharNull = null; } else { CharNull = (*(char *)_read_); _read_ += sizeof(char); } if ((_nullMap_[13 >> 3] & (1 << (13 & 7))) != 0) { UShortNull = null; } else { UShortNull = (*(ushort *)_read_); _read_ += sizeof(ushort); } { Char = (*(char *)_read_); _read_ += sizeof(char); } if ((_nullMap_[14 >> 3] & (1 << (14 & 7))) != 0) { ByteNull = null; } else { ByteNull = (*(byte *)_read_); _read_ += sizeof(byte); } if ((_nullMap_[0 >> 3] & (1 << (0 & 7))) == 0) { BoolNull = null; } else { BoolNull = ((_nullMap_[0 >> 3] & (2 << (0 & 7))) != 0); } { Byte = (*(byte *)_read_); _read_ += sizeof(byte); } if ((_nullMap_[15 >> 3] & (1 << (15 & 7))) != 0) { SByteNull = null; } else { SByteNull = (*(sbyte *)_read_); _read_ += sizeof(sbyte); } { SByte = (*(sbyte *)_read_); _read_ += sizeof(sbyte); } Bool = ((_nullMap_[16 >> 3] & (1 << (16 & 7))) != 0); _deSerializer_.Read = _read_ + ((int)(_deSerializer_.Read - _read_) & 3); if ((_nullMap_[17 >> 3] & (1 << (17 & 7))) == 0) { if (!_deSerializer_.MemberClassDeSerialize(ref String)) { return; } } } else { _deSerializer_.Error(fastCSharp.emit.dataDeSerializer.deSerializeState.MemberMap); } }
/// <summary> /// 反序列化 /// </summary> /// <param name="_deSerializer_">对象反序列化器</param> public unsafe void DeSerialize(fastCSharp.emit.dataDeSerializer _deSerializer_) { #region IF type.IsNull _deSerializer_.AddPoint(this); #endregion IF type.IsNull if (_deSerializer_.CheckMemberCount(@MemberCountVerify)) { #region IF NullMapFixedSize byte *_read_ = _deSerializer_.Read; #region IF NullMapSize byte *_nullMap_ = _read_; _read_ += @NullMapSize; #endregion IF NullMapSize #endregion IF NullMapFixedSize #region LOOP Members #region NAME FixedDeSerialize #region IF MemberType.IsBool #region IF MemberType.IsNull if ((_nullMap_[@SerializeNullMapIndex >> 3] & (1 << (@SerializeNullMapIndex & 7))) == 0) { @MemberName = null; } else { @MemberName = /*NOTE*/ (FullName)(object)/*NOTE*/ ((_nullMap_[@SerializeNullMapIndex >> 3] & (2 << (@SerializeNullMapIndex & 7))) != 0); } #endregion IF MemberType.IsNull #region NOT MemberType.IsNull @MemberName = /*NOTE*/ (FullName)(object)/*NOTE*/ ((_nullMap_[@SerializeNullMapIndex >> 3] & (1 << (@SerializeNullMapIndex & 7))) != 0); #endregion NOT MemberType.IsNull #endregion IF MemberType.IsBool #region NOT MemberType.IsBool #region IF SerializeFixedSize #region IF MemberType.IsNull if ((_nullMap_[@SerializeNullMapIndex >> 3] & (1 << (@SerializeNullMapIndex & 7))) != 0) { @MemberName = null; } else #endregion IF MemberType.IsNull { @MemberName = /*IF:MemberType.Type.IsEnum*/ (@MemberType.FullName) /*IF:MemberType.Type.IsEnum*//*NOTE*/ (object) /*NOTE*/ (*(@MemberType.StructNotNullType *)_read_); _read_ += sizeof(@MemberType.StructNotNullType); } #endregion IF SerializeFixedSize #endregion NOT MemberType.IsBool #endregion NAME FixedDeSerialize #endregion LOOP Members #region IF NullMapFixedSize _deSerializer_.Read = _read_ + ((int)(_deSerializer_.Read - _read_) & 3); #endregion IF NullMapFixedSize #region LOOP Members #region NAME NotFixedDeSerialize #region NOT SerializeFixedSize #region IF MemberType.IsNull if ((_nullMap_[@SerializeNullMapIndex >> 3] & (1 << (@SerializeNullMapIndex & 7))) == 0) #endregion IF MemberType.IsNull #region IF MemberType.Type.IsValueType #region IF MemberType.NullType { @MemberType.NullType.FullName _value_ = /*NOTE*/ ((int?)(object)/*NOTE*/ @MemberName /*NOTE*/) /*NOTE*/.HasValue ? /*NOTE*/ (MemberType.NullType.FullName)(object)((int?)(object)/*NOTE*/ @MemberName /*NOTE*/) /*NOTE*/.Value : default(@MemberType.NullType.FullName); if (_deSerializer_.MemberStructDeSerialize(ref _value_)) { @MemberName = _value_; } else { return; } } #endregion IF MemberType.NullType #region NOT MemberType.NullType if (!_deSerializer_.MemberStructDeSerialize(ref @MemberName)) { return; } #endregion NOT MemberType.NullType #endregion IF MemberType.Type.IsValueType #region NOT MemberType.Type.IsValueType if (!_deSerializer_.MemberClassDeSerialize(ref @MemberName)) { return; } #endregion NOT MemberType.Type.IsValueType #endregion NOT SerializeFixedSize #endregion NAME NotFixedDeSerialize #endregion LOOP Members } #region IF Attribute.IsMemberMap else if (_deSerializer_.GetMemberMap <@type.FullName>() != null) { #region IF NullMapSize byte *_nullMap_ = _deSerializer_.Read; #endregion IF NullMapSize #region IF FixedSize byte *_read_; #region IF NullMapSize _read_ = _nullMap_ + @NullMapSize; #endregion IF NullMapSize #region NOT NullMapSize _read_ = _deSerializer_.Read; #endregion NOT NullMapSize #endregion IF FixedSize #region LOOP Members if (_deSerializer_.IsMemberMap(@MemberIndex)) { #region FROMNAME FixedDeSerialize #endregion FROMNAME FixedDeSerialize } #endregion LOOP Members #region IF FixedSize _deSerializer_.Read = _read_ + ((int)(_deSerializer_.Read - _read_) & 3); #endregion IF FixedSize #region LOOP Members if (_deSerializer_.IsMemberMap(@MemberIndex)) { #region FROMNAME NotFixedDeSerialize #endregion FROMNAME NotFixedDeSerialize } #endregion LOOP Members } #endregion IF Attribute.IsMemberMap #region NOT Attribute.IsMemberMap else { _deSerializer_.Error(fastCSharp.emit.dataDeSerializer.deSerializeState.MemberMap); } #endregion NOT Attribute.IsMemberMap }