2013-06-14 6 views
1

이것은 SOAP 봉투를받는 서비스 참조가있는 Visual Studio 2010 C# 응용 프로그램입니다. 응용 프로그램은 잘 작동하며 서비스에서 데이터를 가져 와서 db에 쓰는 자동화 된 프로세스에서 몇 개월 동안 야간에 실행되었습니다. 야간에 실행되고 자동화되기 때문에 UI가 매우 슬림합니다.IClientMessageInspector에 속성 추가

디버깅 목적으로 응답을 볼 수 있도록 양식에 텍스트 상자를 추가하고 싶습니다. 때로는 통나무에서 의미가없는 것들을 얻습니다. 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; 
+0

콘솔 응용 프로그램에서 웹 응용 프로그램으로 데이터를 가져 오는 방법에 대한 아이디어를 얻으려면 ASP.NET 부분의 코드가 더 필요합니다. –

+0

Windows 응용 프로그램이 ASP.net이 아닙니다. "Console.WriteLine ("SOAP 응답 : {0} ", reply.ToString());" 콘솔 창으로 봉투를 가져옵니다. "ThisResponse = reply.ToString();" 속성에 대한 개인 멤버를 채 웁니다. – user1091524

답변

0

나는 속성을 잘못 선언했다. 있었어야합니다

정적 문자열 ThisResponse;

공공 정적 스트링 GlobalResponse {

}

그럼 ... I는 다음과 같이이를 참조

txtResponse.Text = MyMessageInspector.GlobalResponse;

그레그