public static object GetObject(BinaryReader stream)
        {
            EnumVar тип = (EnumVar)stream.ReadByte();

            switch (тип)
            {
            case EnumVar.VTYPE_EMPTY:
            case EnumVar.VTYPE_NULL: return(null);

            case EnumVar.VTYPE_I2: return(stream.ReadInt16());

            case EnumVar.VTYPE_I4: return(stream.ReadInt32());

            case EnumVar.VTYPE_R4: return(stream.ReadSingle());

            case EnumVar.VTYPE_R8: return(stream.ReadDouble());

            case EnumVar.VTYPE_Decimal: return(stream.ReadDecimal());

            case EnumVar.VTYPE_BOOL: return(stream.ReadBoolean());

            case EnumVar.VTYPE_I1: return(stream.ReadSByte());

            case EnumVar.VTYPE_UI1: return(stream.ReadByte());

            case EnumVar.VTYPE_UI2: return(stream.ReadUInt16());

            case EnumVar.VTYPE_UI4: return(stream.ReadUInt32());

            case EnumVar.VTYPE_I8: return(stream.ReadInt64());

            case EnumVar.VTYPE_UI8: return(stream.ReadUInt64());

            case EnumVar.VTYPE_CHAR: return(stream.ReadChar());

            case EnumVar.VTYPE_PWSTR: return(stream.ReadString());

            case EnumVar.VTYPE_BLOB: return(ReadByteArray(stream));

            case EnumVar.VTYPE_DATE: return(ReadDateTime(stream));

            case EnumVar.VTYPE_GUID: return(new Guid(stream.ReadBytes(16)));

            case EnumVar.VTYPE_AutoWrap:
                var target   = stream.ReadInt32();
                var autoWrap = NetObjectToNative.AutoWrap.ObjectsList.GetValue(target);
                return(autoWrap.Object);
            }
            return(null);
        }
Beispiel #2
0
        public static object GetObject(BinaryReader stream)
        {
            EnumVar тип = (EnumVar)stream.ReadByte();

            switch (тип)
            {
            case EnumVar.VtypeEmpty:
            case EnumVar.VtypeNull: return(null);

            case EnumVar.VtypeI2: return(stream.ReadInt16());

            case EnumVar.VtypeI4: return(stream.ReadInt32());

            case EnumVar.VtypeR4: return(stream.ReadSingle());

            case EnumVar.VtypeR8: return(stream.ReadDouble());

            case EnumVar.VtypeDecimal: return(stream.ReadDecimal());

            case EnumVar.VtypeBool: return(stream.ReadBoolean());

            case EnumVar.VtypeI1: return(stream.ReadSByte());

            case EnumVar.VtypeUi1: return(stream.ReadByte());

            case EnumVar.VtypeUi2: return(stream.ReadUInt16());

            case EnumVar.VtypeUi4: return(stream.ReadUInt32());

            case EnumVar.VtypeI8: return(stream.ReadInt64());

            case EnumVar.VtypeUi8: return(stream.ReadUInt64());

            case EnumVar.VtypeChar: return(stream.ReadChar());

            case EnumVar.VtypePwstr: return(stream.ReadString());

            case EnumVar.VtypeBlob: return(ReadByteArray(stream));

            case EnumVar.VtypeDate: return(ReadDateTime(stream));

            case EnumVar.VtypeGuid: return(new Guid(stream.ReadBytes(16)));

            case EnumVar.VtypeAutoWrap:
                var target   = stream.ReadInt32();
                var autoWrap = AutoWrap.ObjectsList.GetValue(target);
                return(autoWrap.Object);
            }
            return(null);
        }
Beispiel #3
0
        public static object GetObject(BinaryReader stream, TCPClientConnector connector)
        {
            // Считываем тип объекта
            EnumVar type = (EnumVar)stream.ReadByte();

            // В зависмости от типа считываем и преобразуем данные
            switch (type)
            {
            case EnumVar.VtypeEmpty:
            case EnumVar.VtypeNull: return(null);

            case EnumVar.VtypeI2: return(stream.ReadInt16());

            case EnumVar.VtypeI4: return(stream.ReadInt32());

            case EnumVar.VtypeR4: return(stream.ReadSingle());

            case EnumVar.VtypeR8: return(stream.ReadDouble());

            case EnumVar.VtypeDecimal: return(stream.ReadDecimal());

            case EnumVar.VtypeBool: return(stream.ReadBoolean());

            case EnumVar.VtypeI1: return(stream.ReadSByte());

            case EnumVar.VtypeUi1: return(stream.ReadByte());

            case EnumVar.VtypeUi2: return(stream.ReadUInt16());

            case EnumVar.VtypeUi4: return(stream.ReadUInt32());

            case EnumVar.VtypeI8: return(stream.ReadInt64());

            case EnumVar.VtypeUi8: return(stream.ReadUInt64());

            case EnumVar.VtypeChar: return(stream.ReadChar());

            case EnumVar.VtypePwstr: return(stream.ReadString());

            case EnumVar.VtypeBlob: return(ReadByteArray(stream));

            case EnumVar.VtypeDate: return(ReadDateTime(stream));

            case EnumVar.VtypeGuid: return(new Guid(stream.ReadBytes(16)));

            case EnumVar.VtypeAutoWrap: return(new AutoWrapClient(stream.ReadInt32(), connector));
            }
            return(null);
        }