2012-12-20 4 views
-2

나는 txtResults.Text 상자에 극장 및 영화를 표시하려고합니다. 여기 웹 서비스 호출에 문제가 있습니다.

MovieInformation MI = new MovieInformation(); 

     int rad = int.Parse(txtRadius.Text); 

     txtResults.Text = MI.GetTheatersAndMovies(txtZip.Text, rad); 

오류는 ... 지금 내 코드입니다 : 암시 적으로 형식을 변환 할 수 없습니다 오류 'WebShowTimes.movies.Theater []'

+0

오류 메시지는 매우 간단합니다. 'GetTheatersAndMovies'에 대한 정의를보고 어떤 매개 변수가 필요한지보십시오. –

+0

'GetTheatersAndMovies '메소드를 체크하고 얼마나 많은 파라미터가 있는지보십시오. 0 또는 1을 넘을 것입니다. – PhoenixReborn

+0

나는 내 게시물을 편집했습니다. –

답변

0

분명히 '문자열'에, 당신이 ' 1 매개 변수를 전달하는 웹 메서드를 호출하고 1 매개 변수를 사용하는 오버로드가 없습니다. 해당 매개 변수를 허용하는 새 메서드를 만든 다음 적절하게 사용해야 할 수 있습니다. 또는 전달되는 매개 변수를 제거하십시오.

2

컴파일러는 서비스에서 예상하는 매개 변수를 전달하지 않는다고 말합니다.

서비스가 특정 우편 번호 주변 지역 (반경)에서 극장을 검색 할 것으로 판단됩니다.

를 시도
txtResults.Text = MI.GetTheatersAndMovies(txtZip.Text,txtRadius.Text); 

편집 :이 방법은이 문자열이 아닌 가치로 사용할 수 없습니다 물론 WebShowTimes.movies.Theater[]

의 배열을 반환 지금은 분명 새로운 오류 메시지가 표시 TextBox.Text 속성의 경우 루프를 반환해야 각 극장에서 반환하고 문자열에 표시해야하는 속성을 가져옵니다.

예 :

WebShowTimes.movies.Theater[] theathers = MI.GetTheatersAndMovies(txtZip.Text, rad); 
foreach(WebShowTimes.movies.Theater t in theaters) 
{ 
    txtResults.Text += t.Name + ", " + t.Address + "\r\n"; 
} 

txtResult는 서비스에서 반환 한 모든 극장을 표시 할 수있는 높이의 다중 행 텍스트 상자라고 가정합니다.

+0

예, 이것을 시도했습니다. 편집 된 게시물을 확인하십시오. 반경 문제를 해결했습니다. 지퍼에 문제가 생겼습니다. –

1

자세한 도움말을 원하지만 컴파일러에서 MovieInformation 서비스에 단일 문자열 매개 변수를 사용하는 GetTheatersAndMovies이라는 메서드가 없다고 알리는 경우 MovieInformation에 대한 코드를 게시하십시오.

편집 :

MI.GetTheatersAndMovies(txtZip.Text,txtRadius.Text); 

그리고 당신은 Theater 객체의 배열을 받게 될 것입니다 : 귀하의 코멘트에 게시 된 웹 서비스 URL을 기반으로

, 당신은 그래서 웹 서비스를 호출한다 그것은 다음과 같습니다

<Theater> 
     <Name>string</Name> 
     <Address>string</Address> 
     <Movies> 
     <Movie xsi:nil="true" /> 
     <Movie xsi:nil="true" /> 
     </Movies> 
</Theater> 

업데이트 2 요 u는이 같은 일을 수행해야합니다

var result = MI.GetTheatersAndMovies(txtZip.Text, rad); 
StringBuilder sb = new StringBuilder(); 
foreach(var item in result) 
{ 
    sb.Append(string.Format("Theater Name: {0}",item.Name)); 
    sb.Append(string.Format("Address: {0}",item.Address)); 
    foreach (var movie in item.Movies) 
    { 
      sb.Append(string.Format("Movie: {0}",movie.Name)); 
      sb.Append(string.Format("Rating: {0}",movie.Rating)); 
    } 
} 

txtResults.Text = sb.ToString(); 

당신은 웹 서비스에 의해 반환 된 각 개체의 모양 방법을 정확하게 말할 것이다 web service here에 대한 WSDL을 볼 수 있습니다. 희망이 당신에게 아이디어를 줄 것이다

MI.Theaters th=MI.GetTheatersAndMovies(txtZip.Text, rad); 
foreach(Mi.movie in th) 
    { 
    string moviname=mi.movie.name; 
    } 

:

+0

http://www.ignyte.com/WebServices/Ignyte.WhatsShowing.Webservice/MovieFunctions.asmx –

+0

그게 내가 사용하고있는 웹 서비스입니다. –

+0

@MattMcCarthy 내 편집을 확인하십시오 – Icarus

0

반환 된 결과는 배열이 너무 적절한 형태로 그것을 얻을 다음 루프가 같은 하나의 무언가에 의해 영화 하나를 얻는 것입니다.

관련 문제