Welcome

首页 / 软件开发 / WCF / WCF示例(8) - 消息处理(使用流数据传输文件)

WCF示例(8) - 消息处理(使用流数据传输文件)2012-01-20 webabcd 介绍

WCF(Windows Communication Foundation) - 消息处理:使用流数据传输文件,减少内存开销。

示例

1、服务

IStreamed.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;  using System.ServiceModel;using System.IO;  namespace WCF.ServiceLib.Message{  /**//// <summary>  /// 消息契约(定义与 SOAP 消息相对应的强类型类)  /// </summary>  [MessageContract]  public class FileWrapper  {    /**//// <summary>    /// 指定数据成员为 SOAP 消息头    /// </summary>    [MessageHeader]    public string FilePath;      /**//// <summary>    /// 指定将成员序列化为 SOAP 正文中的元素    /// </summary>    [MessageBodyMember]    public Stream FileData;  }    /**//// <summary>  /// IStreamed接口  /// </summary>  [ServiceContract]  public interface IStreamed  {    /**//// <summary>    /// 上传文件    /// </summary>    /// <remarks>    /// 1、支持数据流传输的绑定有:BasicHttpBinding、NetTcpBinding 和 NetNamedPipeBinding    /// 2、流数据类型必须是可序列化的 Stream 或 MemoryStream    // /3、传递时消息体(Message Body)中不能包含其他数据,即参数中只能有一个System.ServiceModel.MessageBodyMember    /**//// </remarks>    /// <param name="fileWrapper">WCF.ServiceLib.Message.FileWrapper</param>    [OperationContract]    void UploadFile(FileWrapper fileWrapper);  }}