WCF流与文件传输

本文介绍了如何在WCF中开启流模式进行文件传输,重点讲解了TransferMode属性的设置及其不同模式的含义,包括Buffered、StreamedRequest和StreamedResponse。通过创建Server和Client的WinForm示例,详细展示了服务协定定义、流模式配置以及客户端调用的步骤,以解决大文件传输时内存限制的问题。
摘要由CSDN通过智能技术生成

开启流模式,主要是设置一个叫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>
/// 返回结果

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值