none
我想问一下,下面两种传送文件的方法的区别 RRS feed

  • 问题

  •         //1实现接口定义的方法,下载文件数据流
            public MemoryStream DownLoadStreamData(string fileName)
            {
               // Stream stream = 
                byte[] file = new byte[200000];
                String filePath = AppDomain.CurrentDomain.BaseDirectory + @"\" + fileName;
                file = File.ReadAllBytes(filePath);
                MemoryStream memoryStream = new MemoryStream(file);
                return memoryStream;
            }
            //2实现接口定义的方法,下载文件数据流
            public void DownLoadStreamDataOut(out MemoryStream stream, string fileName)
            {
                // Stream stream = 
                byte[] file = new byte[200000];
                String filePath = AppDomain.CurrentDomain.BaseDirectory + @"\" + fileName;
                file = File.ReadAllBytes(filePath);
                MemoryStream memoryStream = new MemoryStream(file);
                stream = memoryStream;
                
            }
    还有一个问题是,方法都是一次性把文件读入到MemoryStream中,那么在传送中是不是先在客户端建立一个流然后从服务端一点一点读出然后写入到客户端的?
    2009年9月30日 12:54

答案

  • Hi,
       这个数据传递,和你使用的binding有关系。
      不过本质上都是传输数据,不管你使用http还是tcp协议。
      这里的MemoryStream 只是.NET 的类型,用于构建数据对象。
      客户端和服务端不是要建立流。
      应该是一个连接,通信的链接。
      然后就保证数据如何完整地发送到客户端。
      这个和基本的使用二进制数据传递数据本质上一样的。
      只是使用了一些.NET 类型
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年10月2日 2:10
    版主

全部回复

  • Hi,
       这个数据传递,和你使用的binding有关系。
      不过本质上都是传输数据,不管你使用http还是tcp协议。
      这里的MemoryStream 只是.NET 的类型,用于构建数据对象。
      客户端和服务端不是要建立流。
      应该是一个连接,通信的链接。
      然后就保证数据如何完整地发送到客户端。
      这个和基本的使用二进制数据传递数据本质上一样的。
      只是使用了一些.NET 类型
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2009年10月2日 2:10
    版主
  • 您好,单看这两个方法只是c#语法不同而已,并无本质区别。
    其它方面请参考Frank的观点。
    2009年10月3日 8:07