다음을 통해 공유


IStreamProvider 인터페이스

정의

스트림을 제공하는 클래스에서 구현할 수 있는 인터페이스를 나타냅니다.

public interface class IStreamProvider
public interface IStreamProvider
type IStreamProvider = interface
Public Interface IStreamProvider

설명

스트리밍된 본문이 포함된 발신 메시지를 XML 작성 Message 기에 쓸 때 구현에서 다음과 OnWriteBodyContents(XmlDictionaryWriter) 유사한 호출 시퀀스를 사용합니다.

  • 스트림 앞에 필요한 정보를 작성합니다(예: 여는 XML 태그).

  • 스트림을 씁니다.

  • 스트림 다음에 정보를 씁니다(예: 닫는 XML 태그).

이는 텍스트 XML 인코딩과 유사한 인코딩을 사용하여 작동합니다. 그러나 XML 정보 세트 정보(예: XML 요소 시작 및 종료 태그)를 요소 내에 포함된 데이터와 함께 배치하지 않는 일부 인코딩이 있습니다. 예를 들어 MTOM 인코딩에서 메시지는 여러 부분으로 나누어집니다. 한 부분에는 실제 요소 내용에 대한 다른 부분에 대한 참조가 포함될 수 있는 XML 정보 세트가 포함되어 있습니다. XML 정보 세트는 일반적으로 스트리밍된 콘텐츠에 비해 작기 때문에 정보 세트를 버퍼링하고, 작성한 다음, 스트리밍된 방식으로 콘텐츠를 작성하는 것이 좋습니다. 즉, 닫는 요소 태그를 작성할 때까지 스트림을 아직 작성하지 않아야 합니다.

이를 위해 IStreamProvider 인터페이스가 사용됩니다. 인터페이스에는 작성할 스트림을 반환하는 GetStream() 메서드가 있습니다. OnWriteBodyContents(XmlDictionaryWriter) 에서 스트리밍된 메시지 본문을 쓰는 올바른 방법은 다음과 같습니다.

  • 스트림 앞에 필요한 정보를 작성합니다(예: 여는 XML 태그).

  • 쓸 스트림을 반환하는 WriteValue 구현과 함께 XmlDictionaryWriter 를 사용하는 IStreamProvider에서 IStreamProvider 오버로드를 호출합니다.

  • 스트림 다음에 정보를 씁니다(예: 닫는 XML 태그).

이 방법을 사용하면 GetStream() 을 호출하고 스트리밍된 데이터를 작성할 때 XML 작성기를 선택할 수 있습니다. 예를 들어 텍스트 및 이진 XML 기록기는 즉시 호출하고 시작 태그와 끝 태그 사이에 스트리밍된 콘텐츠를 기록합니다. MTOM 작성기는 메시지의 적절한 일부를 쓸 준비가 되면 나중에 GetStream() 을 호출할지 결정할 수 있습니다.

메서드

GetStream()

스트림을 가져옵니다.

ReleaseStream(Stream)

출력할 스트림을 해제합니다.

적용 대상