System.Xml.XmlUtf8RawTextWriter.RawText C# (CSharp) Méthode

RawText() protected méthode

protected RawText ( char pSrcBegin, char pSrcEnd ) : void
pSrcBegin char
pSrcEnd char
Résultat void
        protected unsafe void RawText( char * pSrcBegin, char * pSrcEnd ) {
            fixed ( byte * pDstBegin = bufBytes ) {
                byte * pDst = pDstBegin + this.bufPos;
                char * pSrc = pSrcBegin;

                int ch = 0;
                for (;;) {
                    byte * pDstEnd = pDst + ( pSrcEnd - pSrc );
                    if ( pDstEnd > pDstBegin + this.bufLen ) {
                        pDstEnd = pDstBegin + this.bufLen;
                    }


                    while ( pDst < pDstEnd && ( ( ch = *pSrc ) <= 0x7F ) ) {



                        pSrc++;
                        *pDst = (byte)ch;
                        pDst++;
                    }
                    Debug.Assert( pSrc <= pSrcEnd );

                    // end of value
                    if ( pSrc >= pSrcEnd ) {
                        break;
                    }

                    // end of buffer
                    if ( pDst >= pDstEnd ) {
                        bufPos = (int)(pDst - pDstBegin);
                        FlushBuffer();
                        pDst = pDstBegin + 1;
                        continue;
                    }

                    if ( InRange( ch, SurHighStart, SurLowEnd ) ) { pDst = EncodeSurrogate( pSrc, pSrcEnd, pDst ); pSrc += 2; } else if ( ch <= 0x7F || ch >= 0xFFFE ) { pDst = InvalidXmlChar( ch, pDst, false ); pSrc++; } else { pDst = EncodeMultibyteUTF8( ch, pDst ); pSrc++; };
                }

                bufPos = (int)(pDst - pDstBegin);
            }
        }

Same methods

XmlUtf8RawTextWriter::RawText ( string s ) : void