веб-сервисы asp.net, возвращающие пустой объект - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть XSD-файл, который определяет схему, по которой мой движок может связываться с другими плагинами (написанными на разных языках, например Delphi).Я использовал инструмент XSD, предоставленный .Net, чтобы получить класс C # из файла XSD.

Плагины возвращают строку XML, которую я затем десериализовываю в класс, сгенерированный инструментом XSD.

Пока все хорошо, когда я передаю массив класса черезвеб-сервис для клиента, массив содержит один элемент, и это нормально, но каждое поле в этом объекте либо равно нулю, либо имеет значение по умолчанию.

Любые идеи Почему это может происходить?

Я также попытался отправить фиктивные данные вместо обычного извлечения данных из плагина, но все еще возвращаемый объект пуст.

Это класс, сгенерированный инструментом XSD:

using System.Xml.Serialization;


/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class BookingQueryResponse {

    /// <remarks/>
    public int ErrorCode;

    /// <remarks/>
    public string ErrorString;

    /// <remarks/>
    public int BookingQueryID;

    /// <remarks/>
    public int DestinationID;

    /// <remarks/>
    public string DestinationName;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(DataType="date")]
    public System.DateTime ArrivalDate;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(DataType="date")]
    public System.DateTime DepartureDate;

    /// <remarks/>
    public int CurrencyID;

    /// <remarks/>
    public string CurrencyISO;

    /// <remarks/>
    public string CurrencySymbol;

    /// <remarks/>
    public int LangID;

    /// <remarks/>
    public string LangCode;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("HotelQuotePackages")]
    public HotelQuotePackage[] HotelQuotePackages;
}

/// <remarks/>
public class HotelQuotePackage {

    /// <remarks/>
    public string PackageGuid;

    /// <remarks/>
    public string PackageName;

    /// <remarks/>
    public string PluginGuid;

    /// <remarks/>
    public int ResortID;

    /// <remarks/>
    public string ResortName;

    /// <remarks/>
    public int HotelID;

    /// <remarks/>
    public string HotelName;

    /// <remarks/>
    public int HotelRatingID;

    /// <remarks/>
    public string HotelRatingName;

    /// <remarks/>
    public string HotelNarrative;

    /// <remarks/>
    public System.Double MapLongitude;

    /// <remarks/>
    public System.Double MapLatitude;

    /// <remarks/>
    public string HotelRemark;

    /// <remarks/>
    public string OfferText;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("HotelRoomQuotes")]
    public HotelRoomQuote[] HotelRoomQuotes;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("HotelImages")]
    public HotelMediaImage[] HotelImages;
}

/// <remarks/>
public class HotelRoomQuote {

    /// <remarks/>
    public int RoomNumber;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("RoomQuotes")]
    public RoomQuote[] RoomQuotes;
}

/// <remarks/>
public class RoomQuote {

    /// <remarks/>
    public string Guid;

    /// <remarks/>
    public int AdultPax;

    /// <remarks/>
    public int ChildPax;

    /// <remarks/>
    public int InfantPax;

    /// <remarks/>
    public string RoomTypeName;

    /// <remarks/>
    public string RoomTypeDesc;

    /// <remarks/>
    public int BoardBasisID;

    /// <remarks/>
    public string BoardBasisName;

    /// <remarks/>
    public System.Double CostForStay;

    /// <remarks/>
    public string Remarks;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute("DayRates")]
    public DayRate[] DayRates;
}

/// <remarks/>
public class DayRate {

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(DataType="date")]
    public System.DateTime Date;

    /// <remarks/>
    public System.Double Rate;
}

/// <remarks/>
public class HotelMediaImage {

    /// <remarks/>
    public string HotelImage;

    /// <remarks/>
    public int ImageTypeID;

    /// <remarks/>
    public string ImageType;
}

и только для целей тестирования веб-службы все, что я сделал, это:

return return new BookingQueryResponse[1] { new BookingQueryResponse() { ArrivalDate = DateTime.Now.Date, DestinationName = "Malta" } };

1 Ответ

0 голосов
/ 04 ноября 2011

Пожалуйста, отправьте XSD.Поскольку ваши классы выглядят хорошо, мое первоначальное обоснованное предположение состоит в том, что это несоответствие типа (пространства имен) между вашим XSD и вашим пространством имен C #.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...