2011-04-06 31 views
0

编辑:对不起这里是tottaly错误。从WCF服务流获取字节数组的问题

编辑:再次从头开始:

我有一个WCF服务,并在我的程序的某些时候我得到一个指向一个字节数组。我想从这个字节数组/指针复制字节到另一个字节数组并将其发送给客户端。 我也有运行相同的代码测试程序(不WCF服务):

  uint read = 1; 
      uint size = (uint)job.OutputFileParameters[1].ActualSize + 1; 
      byte[] arrbyt = new byte[job.OutputFileParameters[1].ActualSize + 1]; 
      unsafe 
      { 

       fixed (byte* buffer = arrbyt) 
       { 
        int ind = 0; 
        while (read != 0) 
        { 
         str.RemoteRead(out *buffer, size, out read); 

        } 

       } 
      } 

但在测试程序arrbyt充满字节,一切都很好,但在WCF服务arrbyt是空的。这是我的问题对于以前的版本,我很累很抱歉;)

+0

作为一个注释:'params'是一个保留的关键字,不知道你如何使用它,而不用'@'作为前缀。 – 2011-04-06 15:20:37

+0

作为另一个说明,还有更多的问题:在本例中没有定义'size'和'read'。 – 2011-04-06 15:28:08

+2

我可以向你承诺Marshal.Copy确实有效 – 2011-04-06 15:31:25

回答

0

问题是相同的代码在WCF服务和正常的Windows应用程序中有不同的结果。在WCF服务中,当RemoteRead读取0字节时,它将零置于arrbyt,在读取0字节后,在Windows应用程序中arrbyte保持不变,因为它没有任何内部正确值的变化。