添加属性到IClientMessageInspector
本文关键字:IClientMessageInspector 属性 添加 | 更新日期: 2023-09-27 18:18:40
这是一个使用Service Reference接收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;
我错误地声明了属性。应该是
公共静态字符串GlobalResponse {
}
然后我像这样引用它…
txtResponse。Text = MyMessageInspector.GlobalResponse;
格雷格