1

これは、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;
4

1 に答える 1

0

プロパティの宣言が間違っていました。だったはず

静的文字列 ThisResponse;

public static string GlobalResponse {

}

それから私はそれをこのように参照します...

txtResponse.Text = MyMessageInspector.GlobalResponse;

グレッグ

于 2013-06-14T19:02:46.497 に答える