У меня есть 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" } };