在WCF服务中从流中获取字节数组的问题

时间:2011-04-06 15:08:21

标签: c# interop marshalling

编辑:对不起这里有些错误。

编辑:从头开始:

我有一个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为空。这是我的问题抱歉以前的版本我累了;)

1 个答案:

答案 0 :(得分:0)

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