System.Data.SqlTypes.SqlXmlStreamWrapper.Seek C# (CSharp) Method

Seek() public method

public Seek ( long offset, SeekOrigin origin ) : long
offset long
origin SeekOrigin
return long
        public override long Seek(long offset, SeekOrigin origin)
        {
            long lPosition = 0;

            ThrowIfStreamClosed(nameof(Seek));
            ThrowIfStreamCannotSeek(nameof(Seek));
            switch (origin)
            {
                case SeekOrigin.Begin:
                    if (offset < 0 || offset > _stream.Length)
                        throw new ArgumentOutOfRangeException(nameof(offset));
                    _lPosition = offset;
                    break;

                case SeekOrigin.Current:
                    lPosition = _lPosition + offset;
                    if (lPosition < 0 || lPosition > _stream.Length)
                        throw new ArgumentOutOfRangeException(nameof(offset));
                    _lPosition = lPosition;
                    break;

                case SeekOrigin.End:
                    lPosition = _stream.Length + offset;
                    if (lPosition < 0 || lPosition > _stream.Length)
                        throw new ArgumentOutOfRangeException(nameof(offset));
                    _lPosition = lPosition;
                    break;

                default:
                    throw ADP.InvalidSeekOrigin(nameof(offset));
            }

            return _lPosition;
        }

Usage Example

Example #1
0
        public XmlReader CreateReader()
        {
            if (IsNull)
            {
                throw new SqlNullValueException();
            }

            SqlXmlStreamWrapper stream = new SqlXmlStreamWrapper(m_stream);

            // if it is the first time we create reader and stream does not support CanSeek, no need to reset position
            if ((!firstCreateReader || stream.CanSeek) && stream.Position != 0)
            {
                stream.Seek(0, SeekOrigin.Begin);
            }

            // NOTE: Maintaining createSqlReaderMethodInfo private field member to preserve the serialization of the class
            if (createSqlReaderMethodInfo == null)
            {
                createSqlReaderMethodInfo = CreateSqlReaderMethodInfo;
            }
            Debug.Assert(createSqlReaderMethodInfo != null, "MethodInfo reference for XmlReader.CreateSqlReader should not be null.");

            XmlReader r = CreateSqlXmlReader(stream);

            firstCreateReader = false;
            return(r);
        }
All Usage Examples Of System.Data.SqlTypes.SqlXmlStreamWrapper::Seek