public DataStream Read(out object data, Type type, FieldType fieldType, bool swaped) { switch (fieldType) { case FieldType.AString: data = ReadAString(); return(this); case FieldType.CUInt32: data = ReadCUInt32(); return(this); case FieldType.DwordAString: data = ReadAString(true); return(this); case FieldType.DwordUString: data = ReadUString(true); return(this); } switch (type.Name) { case "DataStream": data = ReadDataStream(); return(this); case "String": data = ReadUString(); return(this); case "Single": data = ReadFloat(swaped); return(this); case "Int32": data = ReadInt32(swaped); return(this); case "Int16": data = ReadInt16(swaped); return(this); case "UInt32": data = ReadDword(swaped); return(this); case "UInt16": data = ReadWord(swaped); return(this); case "Byte": data = ReadByte(); return(this); case "Boolean": data = ReadBoolean(); return(this); default: data = DataStreamSerializer.Deserialize(this, swaped, type); return(this); } }
public DataStream Write(object data, bool swaped, FieldType type) { switch (type) { case FieldType.AString: return(WriteAString((string)data)); case FieldType.CUInt32: return(WriteCUInt32((uint)data)); case FieldType.DwordAString: return(WriteAString((string)data, true)); case FieldType.DwordUString: return(WriteUString((string)data, true)); } if (data is DataStream) { return(WriteDataStream((DataStream)data)); } if (data is string) { return(WriteUString((string)data)); } if (data is uint) { return(WriteDword((uint)data, swaped)); } if (data is ushort) { return(WriteWord((ushort)data, swaped)); } if (data is int) { return(WriteInt32((int)data, swaped)); } if (data is short) { return(WriteInt16((short)data, swaped)); } if (data is float) { return(WriteFloat((float)data, swaped)); } if (data is UnixTime) { return(WriteTime((UnixTime)data, swaped)); } if (data is Point3F) { return(WritePoint((Point3F)data, swaped)); } if (data is byte[]) { return(WriteBytes((byte[])data, swaped)); } if (data is byte) { return(WriteByte((byte)data)); } if (data is bool) { return(WriteBoolean((bool)data)); } DataStreamSerializer.Serialize(data, this); return(this); }