XmlReader.ReadValueChunk(Char[], Int32, Int32) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
XML 문서에 포함된 큰 텍스트 스트림을 읽습니다.
public:
virtual int ReadValueChunk(cli::array <char> ^ buffer, int index, int count);
public virtual int ReadValueChunk(char[] buffer, int index, int count);
abstract member ReadValueChunk : char[] * int * int -> int
override this.ReadValueChunk : char[] * int * int -> int
Public Overridable Function ReadValueChunk (buffer As Char(), index As Integer, count As Integer) As Integer
매개 변수
- buffer
- Char[]
텍스트 내용이 기록되는 버퍼 역할을 하는 문자의 배열입니다. 이 값은 null일 수 없습니다.
- count
- Int32
버퍼에 복사할 최대 문자 수입니다. 복사된 실제 문자 수는 이 메서드에서 반환됩니다.
반환
버퍼로 읽은 문자 수입니다. 텍스트 콘텐츠가 더 이상 없으면 값 0이 반환됩니다.
예외
현재 노드에 값(is)HasValue 이 false없습니다.
-또는-
XmlReader 이전 비동기 작업이 완료되기 전에 메서드가 호출되었습니다. 이 경우 InvalidOperationException "비동기 작업이 이미 진행 중입니다."라는 메시지와 함께 throw됩니다.
buffer 값은 null.
버퍼에 대한 인덱스 또는 인덱스 + 개수가 할당된 버퍼 크기보다 큰 경우
구현은 이 XmlReader 메서드를 지원하지 않습니다.
XML 데이터가 잘 구성되지 않았습니다.
설명
이 메서드를 사용하면 XML 문서에 포함된 매우 큰 텍스트 스트림을 스트리밍 방식으로 읽을 수 있습니다. 즉, 전체 값에 단일 문자열을 할당하는 대신 한 번에 적은 수의 문자를 읽을 수 있습니다. 값이HasValuetrue있는 모든 노드에서 이 메서드를 호출할 수 있지만 노드 값의 실제 스트리밍은 텍스트, 공백 및 상당한 공백 노드에서 호출될 때만 발생합니다. 특성 및 CDATA 노드를 포함하여 다른 노드 형식 값이 캐시됩니다.
이 메서드는 속성의 Value 내용만 반환하고 이동 XmlReader하지 않습니다.
이 메서드는 노드 값의 지정된 문자 수(count)를 지정된 오프셋()의 문자 버퍼(bufferindex)로 읽고 버퍼에 기록된 문자 수를 반환합니다. 값의 0 끝에 도달한 경우를 반환합니다. 값을 다시 읽으려면 다시 시작할 수 없습니다.
속성에 대한 ReadValueChunkXmlReader 호출 사이에 속성 외에는 Value 변경되지 않습니다. 속성에 Value 액세스하면 부분 값(아직 반환되지 않은 문자 포함)을 반환하거나 구현에 따라 전체 값을 반환 ReadValueChunk할 수 있습니다. 네임스페이 XmlReaderSystem.Xml 스의 모든 구현은 속성 구현에 대한 Value 부분 값을 반환합니다.
호출 간에 모든 Read 메서드를 호출할 ReadValueChunk수 있습니다. 이 경우 스트림에서 XmlReader 다음 XmlNodeType 으로 이동하고 아직 반환되지 않은 문자는 건너뜁니다.
요청된 문자 수보다 적게 반환되는 경우가 ReadValueChunk 있을 수 있습니다. 예를 들어 위치 127과 128에서 서로게이트 쌍이 있는 200자 길이의 값이 있고 128자 버퍼를 사용하여 호출 ReadValueChunk 한 경우 메서드 호출은 요청된 128자 대신 127자를 반환합니다. 그러면 서로게이트 쌍이 다음 ReadValueChunk 호출에서 반환됩니다. 이 경우 ReadValueChunk 요청된 128자를 반환하지 않았습니다. 이렇게 하면 버퍼 끝에 불완전한 서로게이트 쌍이 발생했기 때문입니다.
이 메서드의 비동기 버전은 다음을 참조하세요 ReadValueChunkAsync.