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
作为它们的单个参数。我正在使用这种技术,但到目前为止,在我的测试中,它似乎仍然在缓冲,因为在服务器上的流完成之前,我在客户端没有得到任何结果。我正在使用这种技术,但到目前为止,在我的测试中,它似乎仍然在缓冲,因为我没有得到任何结果在服务器上的流完成之前,在我的客户机上显示结果。