软件频道>程序开发>JavaVBVCDelphiC/C++Web开发微软专栏移动数据库程序人生软件工程|开发客
您现在的位置: 天极网 > 开发频道 > 化零为整WCF(8)-消息处理(使用流数据传输文件)
全文

化零为整WCF(8)-消息处理(使用流数据传输文件)

2008-05-25 07:00作者:webabcd出处:天极网责任编辑:nancy

  介绍

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

  Streamed.cs

 


 using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  
  using System.ServiceModel;
  using System.IO;
  
  namespace WCF.ServiceLib.Message
  {
   /**//// 
   /// IStreamed类
   /// 
   public class Streamed : IStreamed
   {
   /**//// 
   /// 上传文件
   /// 
   /// WCF.ServiceLib.Message.FileWrapper
   public void UploadFile(FileWrapper fileWrapper)
   {
   var sourceStream = fileWrapper.FileData;
  
   var targetStream = new FileStream(fileWrapper.FilePath,
   FileMode.Create,
   FileAccess.Write,
   FileShare.None);
  
   var buffer = new byte[4096];
   var count = 0;
  
   while ((count = sourceStream.Read(buffer, 0, buffer.Length)) > 0)
   {
   targetStream.Write(buffer, 0, count);
   }
  
   targetStream.Close();
   sourceStream.Close();
   }
   }
  }
共3页。 1 2 3 下一页 末页
相关搜索:
关注此文读者还看过
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众