开启流模式,主要是设置一个叫TransferMode的属性,所以,你看看哪些Binding的派生类有这个属性就可以了。
TransferMode其实是一个举枚,看看它的几个有效值:
Buffered:缓冲模式,说白了就是在内存中缓冲,一次调用就把整个消息读/写完,也就是我们最常用的方式,就是普通的操作协定的调用方式;
StreamedRequest:只是在请求的时候使用流,说简单一点就是在传入方法的参数使用流,如 int MyMethod(System.IO.Stream stream);
StreamedResponse:就是操作协定方法返回一个流,如 Stream MyMethod(string file_name);
一般而言,如果使用流作为传入参数,最好不要使用多个参数,如这样:
来源: http://blog.csdn.net/tcjiaan/article/details/8248543
1.新建两个WinForm, Server, Client
2.Server中添加引用System.ServiceModel
3.定义服务协定
[ServiceContract(Namespace = "MyNamespace")]
public interface IService
{
[OperationContract]
ResultMessage UpLoadFile(TransferFileMessage tMsg);
}
/// <summary>
/// 参数协定 消息协定作为传入参数,则只能有一个参数
/// </summary>
[MessageContract]
public class TransferFileMessage
{
[MessageHeader]
public string File_Name; //文件名
[MessageBodyMember]
public Stream File_Stream; //文件流
}
/// <summary>
/// 返回结果
WCF流与文件传输
最新推荐文章于 2023-05-25 21:02:15 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)