简洁...从 web 服务调用返回的对象在我的转换函数中被附加字节弄乱了。
基本上我有一个网络参考,我将 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();
}