C# 从webservice调用返回的对象在我的转换函数中被其他字节损坏

C# 从webservice调用返回的对象在我的转换函数中被其他字节损坏,c#,.net,xml,web-services,linq-to-xml,C#,.net,Xml,Web Services,Linq To Xml,简明的…从webservice调用返回的对象在我的转换函数中被额外的字节弄乱了 基本上我有一个webreference,我会将XDocument发送给它 System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); Byte[] baXml = encoding.GetBytes(xdoc.ToString()); object o = MEF_Test.NewSubmission("****

简明的…从webservice调用返回的对象在我的转换函数中被额外的字节弄乱了

基本上我有一个webreference,我会将XDocument发送给它

    System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
    Byte[] baXml = encoding.GetBytes(xdoc.ToString());

    object o = MEF_Test.NewSubmission("*********", "*********", baXml);
传输成功了,我得到了我假设的xml文档,我正试图返回到XDocument。我将对象转换为字节数组

    Byte[] baResponse = ObjectToByteArray(o);
我把这个函数放在了底部,但它可能在有错误的地方

我得到的对象是10492个字符,但在转换后会变大28字节,达到10520大小

            string ss = Encoding.UTF8.GetString(baResponse);
            string ss1 = ss.Substring(28);
            XDocument xSubmissionResponse = XDocument.Parse(ss1);
在屏幕截图中,你可以看到额外的字符,我试图通过让子字符串通过它们来绕过它们。该字符串看起来不错,但随后在字符串的前面抛出一个关于十六进制值0x0B的异常

谁能看看这个吗?谢谢

--

我没有声誉坚持的形象,我希望链接工程

    private static byte[] ObjectToByteArray(Object obj)
    {
       if (obj == null)
          return null;
       BinaryFormatter bf = new BinaryFormatter();
       MemoryStream ms = new MemoryStream();
       bf.Serialize(ms, obj);
       return ms.ToArray();
    }

o已经是字节数组(如调试器中所示)。再次反序列化它没有意义。只需将对象o强制转换为byte[],然后在其上运行Encoding.GetString方法。

这起作用了……谢谢。我没有代表投票,否则我会。