快捷搜索:

在流模式下利用消息头传输带外信息

WCF为传输层实现数据流在客户和办事之间进行传输供给了很好的支持,不过在应用这种要领时,我们必须遵照响应的约定。WCF办事在启动时会首先反省操作左券是否相符这种规范。由于平日模式下我们不能简单地在客户中应用特定的流,如我们在传输文件时,我们目的是要获得文件工具,而不是流工具。由于我们应用了不合类型的文件(如:*.doc,*.exe等),那么在另一端我们应该能够重现这种类型,不过因为应用传布输带来很好的机能,于是我们想在文件传输中应用这种流模式。那么就得附加响应的文件信息给异端,以便重现文件。这时我们就可以应用SOAP消息头来附加这些信息了。

1流模式的操作左券约定:

首先我们先来懂得一下应用流模式的基础的操作左券要求。要应用流模式,我们在操作左券中只能因此单个的输入输出流作为参数,也便是说措施的参数和返回参数,要么是Stream工具或派生类工具,要么void,形如以下的措施署名可认可:

void SendStream(Stream inStream);

Stream ReceiveStream();

Stream SendAndReceiveStream(Stream inStream);

void SendAndReceiveStream(Stream inStream,out Stream outStream);

void ReceiveStream(out Stream outStream)

从上面的署名我们可以看出假如我们要在办事和客户之间通报一个文件流,在措施中是无法通报一个参数来达到的,以是这儿为了通报文件名和路径,我们选择应用消息头附加这些信息的要领来实现,这儿定义操作左券为:

[ServiceContract ]

publicinterface ISendStreamService

{

//使用流的传输模式来实现,消息头附加信息

[OperationContract]

void SendStream(Stream stream);

}

您可能还会对下面的文章感兴趣: