2014-02-27 2 views
-1

웹 서비스 작업에 익숙하지 않은, 메서드를 구현하려고하는데 문제가 있습니다. 이것은 내가로부터 응답을 얻으려고 노력하고있는 방법이다 : 이것은 WSDL은 "GetIbuttonDataInput"에 대한 코드를 생성webservice에서 async 메서드 호출하기

(awaitable) Task<getIbuttonDataResponse> SpecSrvClient.getIbuttonDataAsync(GetIbuttonDataInput getIbuttonDataInput) 

Usage: 
getIbuttonDataResponse x = await getIbuttonDataAsync(...); 

public partial class GetIbuttonDataInput : object, INotifyPropertyChanged { 

    private string ibuttonIdField; 

    private string testerNameField; 

    [SoapElementAttribute(IsNullable=true)] 
    public string ibuttonId { 
     get { 
      return this.ibuttonIdField; 
     } 
     set { 
      this.ibuttonIdField = value; 
      this.RaisePropertyChanged("ibuttonId"); 
     } 
    } 

    [SoapElementAttribute(IsNullable=true)] 
    public string testerName { 
     get { 
      return this.testerNameField; 
     } 
     set { 
      this.testerNameField = value; 
      this.RaisePropertyChanged("testerName"); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    protected void RaisePropertyChanged(string propertyName) { 
     System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; 
     if ((propertyChanged != null)) { 
      propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 

편집 :

죄송합니다, 몰랐어요 아직 이미지를 게시 할 수 없어서 나를 망쳤습니다.

제 질문은 webservice에서 응답을 얻으려고 할 때 어떻게 ibuttonIDField 문자열을 전달합니까? 그것은 응답을 얻기 위해 필요한 값입니다.

편집 2 :

좋아, 그래서이 내가 지금까지 쓴 것입니다 :

static class Program 
     { 
     //... 
     static void Main() 
      { 
      //... 
      getIbuttonDataResponse x = new getIbuttonDataResponse(); 
      Response(serial, x); 
      //... 
      } 
    static async void Response(string[] serial, getIbuttonDataResponse x) 
      { 
       iButtonDB_Service.SpecSrvClient testrequest = new SpecSrvClient(); 
       GetIbuttonDataInput input = new GetIbuttonDataInput { ibuttonId = serial[0], testerName = "me" }; 
       x = await testrequest.getIbuttonDataAsync(input); 
      } 
    } 

난 단지 널 수익을 얻고 있지만, 데이터베이스 값을가하려고 있기 때문에 그 수 액세스가 아직 작성되지 않았습니다.

+0

이미지가 첨부되지 않았습니다. 그것을 추가하십시오. 링크를 게시하면 추가 할게요. – abatishchev

+0

무엇이 질문입니까? –

+0

당신은 _returning_ 아무것도 아니기 때문에 널 반환을 받게 될 것입니다. 당신은'getIbuttonDataResponse' _into_'Response' 메소드를 넘겨 주며 거기에서 리턴하지 않습니다. 'static async Task 를 시도하십시오. 응답 (string [] serial) {... return await testrequest.getIbuttonDataAsync (input);}' –

답변

1

이 부분은 메서드가 비동기로 호출되기 때문에 변경되지 않습니다. 입력 개체의 인스턴스를 만들어 채우고 서비스 호출에 전달해야합니다.

GetIbuttonDataInput input = new GetIbuttonDataInput {ibuttonId ="x", testerName ="me"}; 
getIbuttonDataResponse x = await getIbuttonDataAsync(input); 
+0

감사합니다. 그건 의미가 있습니다, 도와 주셔서 감사합니다! – user3232337

관련 문제