Example #1
0
        public long ToLong()
        {
            ValueHandleType type = _type;

            if (type == ValueHandleType.Zero)
            {
                return(0);
            }
            if (type == ValueHandleType.One)
            {
                return(1);
            }
            if (type == ValueHandleType.Int8)
            {
                return(GetInt8());
            }
            if (type == ValueHandleType.Int16)
            {
                return(GetInt16());
            }
            if (type == ValueHandleType.Int32)
            {
                return(GetInt32());
            }
            if (type == ValueHandleType.Int64)
            {
                return(GetInt64());
            }
            if (type == ValueHandleType.UInt64)
            {
                ulong value = GetUInt64();
                if (value <= long.MaxValue)
                {
                    return((long)value);
                }
            }
            if (type == ValueHandleType.UTF8)
            {
                return(XmlConverter.ToInt64(_bufferReader.Buffer, _offset, _length));
            }
            return(XmlConverter.ToInt64(GetString()));
        }