簡潔...Webサービス呼び出しから返されたオブジェクトは、変換関数で追加のバイトを使用してマングルを取得します。
基本的に、XDocumentを送信するWebリファレンスがあります
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);
スクリーンショットでは、余分な文字を見ることができます。私は、部分文字列を通過させることによって、それらを通過しようとします。その後、文字列は見栄えが良くなりますが、文字列のさらに先にある16進値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();
}