internal static object ReadPrimitive(ReaderBase reader, TypeCode code)
        {
            switch (code)
            {
            case TypeCode.Boolean:
                return(reader.ReadBoolean());

            case TypeCode.Byte:
                return(reader.ReadByte());

            case TypeCode.Char:
                return(reader.ReadChar());

            case TypeCode.DateTime:
                return(reader.ReadDateTime());

            case TypeCode.Decimal:
                return(reader.ReadDecimal());

            case TypeCode.Double:
                return(reader.ReadDouble());

            case TypeCode.Int16:
                return(reader.ReadInt16());

            case TypeCode.Int32:
                return(reader.ReadInt32());

            case TypeCode.Int64:
                return(reader.ReadInt64());

            case TypeCode.SByte:
                return(reader.ReadSByte());

            case TypeCode.Single:
                return(reader.ReadSingle());

            case TypeCode.String:
                return(reader.ReadString());

            case TypeCode.UInt16:
                return(reader.ReadUInt16());

            case TypeCode.UInt32:
                return(reader.ReadUInt32());

            case TypeCode.UInt64:
                return(reader.ReadUInt64());

            case TypeCode.DBNull:
                return(DBNull.Value);
            }
            return(null);
        }