public override void Write(char[] buffer, int index, int count)
        {
            if (destination == null)
            {
                throw new ObjectDisposedException("ConverterWriter");
            }
            if (buffer == null)
            {
                throw new ArgumentNullException("buffer");
            }
            if (index < 0 || index > buffer.Length)
            {
                throw new ArgumentOutOfRangeException("index", TextConvertersStrings.IndexOutOfRange);
            }
            if (count < 0 || count > buffer.Length)
            {
                throw new ArgumentOutOfRangeException("count", TextConvertersStrings.CountOutOfRange);
            }
            if (buffer.Length - index < count)
            {
                throw new ArgumentOutOfRangeException("count", TextConvertersStrings.CountTooLarge);
            }
            if (inconsistentState)
            {
                throw new InvalidOperationException(TextConvertersStrings.ConverterWriterInInconsistentStare);
            }
            int parseCount = 10000;

            //if (!boundaryTesting)
            {
                char[] dst;
                int    num;
                int    num2;
                sinkInputObject.GetInputBuffer(out dst, out num, out num2, out parseCount);
                if (num2 >= count)
                {
                    Buffer.BlockCopy(buffer, index * 2, dst, num * 2, count * 2);
                    sinkInputObject.Commit(count);
                    return;
                }
            }
            WriteBig(buffer, index, count, parseCount);
        }