Попытка получить данные из WSDL с помощью C # - PullRequest
0 голосов
/ 03 января 2019

У меня есть этот код C #, где я пытаюсь получить данные из WSDL в Visual Studio.Код в порядке, но когда я пытаюсь записать данные в блокноте, он просто показывает пустое место:

WindowsService1.ServiceReference1.GetModifiedBookingsOperationResponse getModbkgsResp;
using (var proxy = new WindowsService1.ServiceReference1.InventoryServiceClient())
{
    int noofBookings = 1;
    getModbkgsResp = proxy.GetModifiedBookings(getModBkgsReq);
    WindowsService1.ServiceReference1.Booking[] bookings = new WindowsService1.ServiceReference1.Booking[noofBookings];
    getModbkgsResp.Bookings = new WindowsService1.ServiceReference1.Booking[noofBookings];
    getModbkgsResp.Bookings = bookings;
    if (getModbkgsResp.Bookings != null)
    {
        for (int i = 0; i < bookings.Length; i++)
        {

            Booking bk = new WindowsService1.ServiceReference1.Booking();
            getModbkgsResp.Bookings[i] = bk;
            if (bk != null )
            {
                bookingSource = bk.BookingSource;
                if (bk.BookingId == Bookingcode)
                {
                    this.WriteToFile("Booking Source =" + bookingSource + "");
                }
                else
                {
                    this.WriteToFile("Sorry could not find your source of booking");

                }
            }
            else
            {
                this.WriteToFile("Looks like source is null " );

            }
        }
    }
    else
    {
        this.WriteToFile("ERROR: Booking details not returned from GetModifiedBookings! " +StartDate);
    }
}

1 Ответ

0 голосов
/ 03 января 2019

Я не уверен, почему вы используете ключевое слово new для создания элементов, которые должны были быть получены из службы.Естественно, все, что создано с помощью new, будет инициализировано со значениями по умолчанию и не будет содержать никаких данных, извлеченных из службы.

Мне кажется, ваш код должен выглядеть примерно так:

using (var proxy = new WindowsService1.ServiceReference1.InventoryServiceClient())
{
    var response = proxy.GetModifiedBookings(getModBkgsReq);
    if (response.Bookings == null)
    {
        this.WriteToFile("ERROR: Booking details not returned from GetModifiedBookings! " +StartDate);
        return;
    }
    var booking = response.Bookings.SingleOrDefault( b => b.BookingId == bookingCode);
    if (booking == null)
    {
        this.WriteToFile("Sorry could not find your source of booking");
        return;
    }
    var bookingSource = booking.BookingSource;
    this.WriteToFile("Booking Source =" + bookingSource + "");
}
...