System.Xml.IStreamProvider 接口

方法描述

可由提供流的类实现的接口。

语法定义(C# System.Xml.IStreamProvider 接口 的用法)

public interface IStreamProvider

构造函数

构造函数名称 构造函数描述

成员/方法

方法名称 方法描述
GetStream 获取一个流。
ReleaseStream 发布要输出的流。

提示和注释

将包含经过流处理的正文的传出消息写入 XML 编写器时,Message 将在其 OnWriteBodyContents(XmlDictionaryWriter) 实现中使用类似于下面的一系列调用:

写入流前面的任何必要信息(例如 XML 开始标记)。

写入流。

写入流后面的任何信息(例如 XML 结束标记)。

这对于类似于文本 XML 编码的编码可以正常工作。但是,有一些编码不将 XML 信息集信息(例如,开始和结束 XML 元素的标记)和元素中包含的数据放在一起。例如,在 MTOM 编码中,消息拆分为多个部分。一部分包含 XML 信息集,其中可能包含对实际元素内容的其他部分的引用。由于 XML 信息集通常比流处理的内容小,因此有必要缓冲信息集,将其写出,然后以流处理方式写入内容。这意味着在写入结束元素标记时,应当尚未写出流。

为此,应使用 IStreamProvider 接口。该接口具有一个可返回要写入的流的 GetStream() 方法。写出 OnWriteBodyContents(XmlDictionaryWriter) 中经过流处理的消息正文的正确方式如下:

写入流前面的任何必要信息(例如 XML 开始标记)

对采用 IStreamProvider、具有 IStreamProvider 实现(该实现可返回要写入的流)的 XmlDictionaryWriter 调用 WriteValue 重载。

写入流后面的任何信息(例如 XML 结束标记)

使用此方法时,XML 编写器可以选择何时调用 GetStream() 和写出经过流处理的数据。例如,文本和二进制 XML 编写器将立即调用此方法并写出开始标记和结束标记之间的经过流处理的内容。MTOM 编写器准备写入消息的相应部分时,它可以决定以后调用 GetStream()。

System.Xml.IStreamProvider 接口例子


继承层次结构

命名空间

namespace: System.Xml

程序集: System.Runtime.Serialization(在 System.Runtime.Serialization.dll 中)

线程安全

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。