0

別のクライアント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)

これによりこのエラーがどのように修正されるのか、またはなぜ発生するのかについて、あらゆる種類のアドバイスをいただければ幸いです。ありがとう

4

3 に答える 3

1

わかりました、私が見ることができるものから

bk.GuestInfoの単一インスタンスですGuestDetails

ここでこれに配列を割り当てようとしているのに対し

bk.GuestInfo = new GuestDetails[noofBookings];

したがってbk.GuestInfo、の配列である必要があるか、単一のインスタンスを割り当てるGuestDetailsように変更する必要がありますbk.GuestInfo = new GuestDetails[noofBookings];bk.GuestInfo

于 2012-09-26T04:17:11.237 に答える
1

なぜ単純に

 bk.GuestInfo = new GuestDetails() ;

また、19、20、21行目も同じことをしているようです。

 var details = new GuestDetails[noofBookings] ; 
// fill details array before this..
 bk.GuestInfo = details[noofBookings];
于 2012-09-26T04:20:49.893 に答える
0

Booking.GuestInfoの宣言を配列に変更します:

public GuestDetails[] GuestInfo { set; get; }
于 2012-09-26T04:28:44.443 に答える