2013-06-14 3 views
1

Это приложение Visual Studio 2010 C# с ссылкой на службу, получающей конверты SOAP. Приложение работает нормально и работает в течение нескольких месяцев в автоматическом процессе, чтобы извлекать данные из службы и записывать их в db. Поскольку он работает ночью и автоматизирован, пользовательский интерфейс очень тонкий.Добавить свойство в IClientMessageInspector

Я хочу добавить текстовое поле в форму, чтобы я мог видеть ответ по случаю для целей отладки. Иногда я получаю вещи в журнале, которые не имеют смысла. Класс MessageInspector имеет параметр AfterReceiveReply, который выводит ответ на окно консоли, что хорошо в процессе разработки, но я хочу, чтобы он также выводился в пользовательский интерфейс. Я создал публичную собственность, но я не могу получить ответ на правильное заполнение.

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; 
+0

нужно больше кода из части ASP.NET, чтобы получить представление о том, как вы получаете данные из приложения консоли на веб-приложения. –

+0

Приложение Windows не ASP.net. Строка «Console.WriteLine (« SOAP Response: {0} », reply.ToString()); получает конверт в окно консоли. "ThisResponse = reply.ToString();" заполняет частный элемент для свойства. – user1091524

ответ

0

Я неправильно определил недвижимость. Это должно было быть

статическая строка ThisResponse;

общественности статической строки GlobalResponse {

}

Тогда я ссылаться на него, как это ...

txtResponse.Text = MyMessageInspector.GlobalResponse;

Грег