WCF-在流端点中,是否所有操作契约都需要流作为契约工作的返回或参数?

WCF-在流端点中,是否所有操作契约都需要流作为契约工作的返回或参数?,wcf,Wcf,我想知道,在已设置为流传输模式的同一端点中,是否需要此服务中的所有操作契约在参数中包含流,或者作为此服务工作的返回类型 简言之:启用流的端点是否可以包含不将流作为参数或返回类型的操作约定?是的,即使使用流端点,也可以保留相同的约定,无论它是否包含作为返回类型或参数的流 要使其工作,您需要将合同的一些成员更改为标题 [MessageContract] public class MyContract { [MessageHeader] public string FileName {

我想知道,在已设置为流传输模式的同一端点中,是否需要此服务中的所有操作契约在参数中包含流,或者作为此服务工作的返回类型


简言之:启用流的端点是否可以包含不将流作为参数或返回类型的操作约定?

是的,即使使用流端点,也可以保留相同的约定,无论它是否包含作为返回类型或参数的流

要使其工作,您需要将合同的一些成员更改为标题

[MessageContract]
public class MyContract
{
    [MessageHeader]
    public string FileName { get; set; }

    [MessageBodyMember]
    public Stream Content { get; set; }
}

是的,即使使用流端点,也可以保持相同的约定,不管它是否包含作为返回类型或参数的流

要使其工作,您需要将合同的一些成员更改为标题

[MessageContract]
public class MyContract
{
    [MessageHeader]
    public string FileName { get; set; }

    [MessageBodyMember]
    public Stream Content { get; set; }
}
在以下位置查看MSDN文档:

对流式传输的限制

使用流传输模式 使运行时强制执行 附加限制

在整个系统中发生的操作 流式传输可以有一个合同 最多有一个输入或输出 参数该参数对应于 到消息的整个主体,以及 必须是消息,一种派生类型的 流,或IXmlSerializable 实现。具有返回值 因为一个操作相当于 具有输出参数的

因此,如果您的服务合约将通过启用流媒体的端点公开,该合约上的所有操作必须使用
消息
,或
作为其单个参数。

检查以下MSDN文档:

对流式传输的限制

使用流传输模式 使运行时强制执行 附加限制

在整个系统中发生的操作 流式传输可以有一个合同 最多有一个输入或输出 参数该参数对应于 到消息的整个主体,以及 必须是消息,一种派生类型的 流,或IXmlSerializable 实现。具有返回值 因为一个操作相当于 具有输出参数的


因此,如果您有一个将通过启用流的端点公开的服务合约,该合约上的所有操作必须使用
消息
,或者
Stream
作为它们的单个参数。

我正在使用这种技术,但到目前为止,在我的测试中,它似乎仍然在缓冲,因为在服务器上的流完成之前,我在客户端没有得到任何结果。我正在使用这种技术,但到目前为止,在我的测试中,它似乎仍然在缓冲,因为我没有得到任何结果在服务器上的流完成之前,在我的客户机上显示结果。