System.Xml.XmlReader.ReadValueChunk C# (CSharp) Method

ReadValueChunk() public method

public ReadValueChunk ( char buffer, int index, int count ) : int
buffer char
index int
count int
return int
        public virtual int ReadValueChunk(char[] buffer, int index, int count)
        {
            throw new NotSupportedException(SR.Xml_ReadValueChunkNotSupported);
        }

Usage Example

        private int  ReadContentAsBinary(byte[] buffer, int index, int count)
        {
            Debug.Assert(decoder != null);

            if (isEnd)
            {
                Reset();
                return(0);
            }
            decoder.SetNextOutputBuffer(buffer, index, count);

            for (;;)
            {
                // use streaming ReadValueChunk if the reader supports it
                if (canReadValueChunk)
                {
                    for (;;)
                    {
                        if (valueOffset < valueChunkLength)
                        {
                            int decodedCharsCount = decoder.Decode(valueChunk, valueOffset, valueChunkLength - valueOffset);
                            valueOffset += decodedCharsCount;
                        }
                        if (decoder.IsFull)
                        {
                            return(decoder.DecodedCount);
                        }
                        Debug.Assert(valueOffset == valueChunkLength);
                        if ((valueChunkLength = reader.ReadValueChunk(valueChunk, 0, ChunkSize)) == 0)
                        {
                            break;
                        }
                        valueOffset = 0;
                    }
                }
                else
                {
                    // read what is reader.Value
                    string value             = reader.Value;
                    int    decodedCharsCount = decoder.Decode(value, valueOffset, value.Length - valueOffset);
                    valueOffset += decodedCharsCount;

                    if (decoder.IsFull)
                    {
                        return(decoder.DecodedCount);
                    }
                }

                valueOffset = 0;

                // move to next textual node in the element content; throw on sub elements
                if (!MoveToNextContentNode(true))
                {
                    isEnd = true;
                    return(decoder.DecodedCount);
                }
            }
        }
All Usage Examples Of System.Xml.XmlReader::ReadValueChunk