2012-09-26 3 views
0

다른 클라이언트 웹 서비스를 호출하는 웹 서비스가 있습니다.형식 웹 서비스 응답을 암시 적으로 변환 할 수 없습니다.

다음은 예약 세부 정보를 추출하는 데 사용하는 코드입니다.

ResMsg.GetBookingsOperationRequest request = new ResMsg.GetBookingsOperationRequest(); 

     int noofBookings = 3; 
     DateTime checkInDate; 
     DateTime checkOutDate; 
     string bookingStatus; 
     string Notes; 
     int adults; 
     int children; 
     Int64 bookingID; 
     string bookingSource; 
     DateTime bookingDate; 

     string resResult; 
     using (var proxy = new ResMesg.ResonlineMsg.InventoryServiceClient()) 
     { 

      var result = proxy.GetModifiedBookings(request); 
      ResMsg.Booking[] bookings= new ResMsg.Booking[noofBookings]; 
      result.Bookings = new ResMesg.ResonlineMsg.Booking[noofBookings]; 
      result.Bookings = bookings; 

      for (int i = 0; i < bookings.Length; i++) 
      { 
       Booking bk = new ResMesg.ResonlineMsg.Booking(); 
       result.Bookings[i]=bk; 

       bookingID = bk.BookingId; 
       checkInDate = bk.CheckInDate; 
       checkOutDate = bk.CheckOutDate; 
       adults = bk.Adult; 
       children = bk.Children; 
       bookingStatus = bk.BookingStatus; 
       Notes = bk.Note; 
       bookingSource = bk.BookingSource; 
       bookingDate = bk.BookingDate; 

       bk.GuestInfo = new GuestDetails[noofBookings]; ** Place where error is referring to.GuestDetails is an array. GuestInfo is an instance of GuestDetails. 

      } 


      return "Success"; 


    } 

오류 1 암시 'ResMesg.ResonlineMsg.GuestDetails []'로 형식을 변환 할 수 없습니다 'ResMesg.ResonlineMsg.GuestDetails'

** 업데이트 : GuestDetails

에 대한 데이터 유형
Field    Data Type  Description 
Name    string   Guest's full name. 
Address   string   Guest's address. 
EmailAddress  string   Guest's email address. 
PhoneNumber  string   Guest's phone number. 

게스트 브라우저에 대한 상세 정의

public GuestDetails GuestInfo { set; get; } 
     (Member of Booking) 

나는이 오류를 어떻게 수정했는지 또는 오는 이유에 대해 조언 해 주셔서 감사드립니다. 감사

+0

GuestInfo는 GuestDetails의 인스턴스이다. "GuestInfo = new GuestDetails [noofBookings]"를 수행하십시오. –

+0

죄송합니다. 위의 올바른 문맥을 사용했는데 언젠가 전에받은 이전 답변의 예를 따르고 있는지 확실하지 않습니다. http://stackoverflow.com/a/10096691/1270384 – user1270384

답변

1

이유는 간단 또한

bk.GuestInfo = new GuestDetails() ; 

라인 19,20,21 보면 같은 일을 할 수 없습니다. 어레이의 Booking.GuestInfo

var details = new GuestDetails[noofBookings] ; 
// fill details array before this.. 
bk.GuestInfo = details[noofBookings]; 
1

OK, 나는

bk.GuestInfo를 볼 수있는에서 당신이 여기

bk.GuestInfo = new GuestDetails[noofBookings]; 

에 따라서 하나 bk.GuestInfo 요구에 배열을 할당하려고하는 반면 GuestDetails

의 단일 인스턴스이다 배열이 GuestDetails이거나 을 변경하여 단일 인스턴스를 bk.GuestInfo

로 지정해야합니다.
+0

잘못된가요? 나는 약간의 시간을 거쳐 비슷한 문제에 대한 예를 따라 갔다. http://stackoverflow.com/a/10096691/1270384 – user1270384

+0

예약 클래스 (또는 단지 GuestInfo의 선언 부분)에 대한 코드를 표시하여 선언문이 어떻게 보이는지보십시오. –

+0

GuestDetails 위에 추가되었습니다. – user1270384

0

변화 선언 :

public GuestDetails[] GuestInfo { set; get; } 
+0

위의 정의에 대한 의견은 이미 wsdl에 있으며 내 control.if를 넘어서서 내가 서비스에서 필요로하는 정보를 추출하는 방법을 알 수 있습니다. – user1270384

관련 문제