Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net web服务返回空对象_C#_.net_Xml_Web Services_Xsd - Fatal编程技术网

C# asp.net web服务返回空对象

C# asp.net web服务返回空对象,c#,.net,xml,web-services,xsd,C#,.net,Xml,Web Services,Xsd,我有一个XSD文件,它决定了我的引擎可以通过它与其他插件通信的模式(用不同的语言编写,比如Delphi)。我使用.Net提供的XSD工具从XSD文件中获取一个C#类 这些插件返回一个XML字符串,然后我将其反序列化为XSD工具生成的类 到目前为止一切都很好,但是当我通过web服务将类的数组传递给客户机时,数组包含一个元素,这很好,但是该对象中的每个字段要么为null,要么设置为其默认值 你知道为什么会这样吗 我还尝试发送虚拟数据,而不是正常地从插件检索数据,但返回的对象仍然是空的 这是XSD工具

我有一个XSD文件,它决定了我的引擎可以通过它与其他插件通信的模式(用不同的语言编写,比如Delphi)。我使用.Net提供的XSD工具从XSD文件中获取一个C#类

这些插件返回一个XML字符串,然后我将其反序列化为XSD工具生成的类

到目前为止一切都很好,但是当我通过web服务将类的数组传递给客户机时,数组包含一个元素,这很好,但是该对象中的每个字段要么为null,要么设置为其默认值

你知道为什么会这样吗

我还尝试发送虚拟数据,而不是正常地从插件检索数据,但返回的对象仍然是空的

这是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;
}

请张贴XSD。由于您的类看起来不错,我最初的猜测是XSD和C#命名空间之间的类型(命名空间)不匹配。

听起来xml和类型不匹配。。。但是,如果没有细节(即C#和xml)很难说清楚,在生成的类和xml文件中,请查看对象名称空间(不是C#名称空间,而是由属性XmlType指定的xml名称空间),它们必须匹配@Marc Gravell我编辑了这个问题,以包括生成的c#类(如果有帮助)。@Jonny以及该服务在xml或xsd术语中究竟要返回什么?该服务应该返回BookingQueryResponse[]数组。插件给我一个包含所需数据的XML字符串,但这不是问题所在,问题在于通过web服务传递数组时。
return return new BookingQueryResponse[1] { new BookingQueryResponse() { ArrivalDate = DateTime.Now.Date, DestinationName = "Malta" } };