2012-09-26 62 views
0

我有一個Web服務調用另一個客戶端Web服務。無法隱式轉換類型的Web服務響應

下面是我用來從中提取預訂詳細信息的代碼。

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. 

從對象瀏覽器複製出來的GuestDetails的定義

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看起來是做同樣的事情。

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 = new GuestDetails[noofBookings];以將單個實例分配給bk.GuestInfo

+0

這是錯誤的嗎?我正在關注一個類似的問題,我遇到了一些類似的問題:http://stackoverflow.com/a/10096691/1270384 – user1270384

+0

向我們展示了Booking類的代碼(或者僅僅是GuestInfo的聲明部分),以便我們可以看看這個聲明是什麼樣的。 –

+0

GuestDetails新增上面 – user1270384

0

Booking.GuestInfo的變化聲明數組:

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

請注意上面已經提到的評論,這個定義是在wsdl中,並且超出了我的控制範圍。如果您可以告訴我如何從服務中提取我需要的信息將會非常棒! – user1270384

相關問題