これは、SOAP エンベロープを受信するサービス リファレンスを含む Visual Studio 2010 C# アプリです。アプリケーションは正常に動作し、サービスからデータを取得してデータベースに書き込む自動化されたプロセスで、数か月間夜間に実行されています。夜間に実行され、自動化されているため、UI は非常にスリムです。
フォームにテキストボックスを追加して、デバッグ目的で応答を確認できるようにしたいと考えています。時折、ログに意味のないものが記録されます。MessageInspector クラスには、応答をコンソール ウィンドウに出力する AfterReceiveReply があり、開発中はこれで問題ありませんが、UI にも出力したいと考えています。パブリック プロパティを作成しましたが、適切に入力するための応答を取得できないようです。
public class MyMessageInspector : IClientMessageInspector
{
private string ThisResponse;
public string GlobalResponse
{
get
{
return ThisResponse;
}
set
{
ThisResponse = value;
}
}
public void AfterReceiveReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
{
Console.WriteLine("SOAP Response: {0}", reply.ToString());
ThisResponse = reply.ToString();
}
フォームでは、以下にあるものを呼び出し、GlobalResponse は null です。
MyMessageInspector Output = new MyMessageInspector();
txtResponse.Text = Output.GlobalResponse;