1. 程式人生 > >WebService生成XML文檔時出錯。不應是類型XXXX。使用XmlInclude或SoapInclude屬性靜態指定非已知的類型。

WebService生成XML文檔時出錯。不應是類型XXXX。使用XmlInclude或SoapInclude屬性靜態指定非已知的類型。

ces 錯誤 ali lse pub col ebs single .get

情況是SingleRoom和DoubleRoom是Room類的子類。在WebService中有一個方法是返回Room類。

public Room Get(int roomId)
{
    return Room.Get(roomId);
}

XmlSerializer在序列化時只能識別父類,而不能識別子類,所以導致序列化的錯誤。需要將[XmlInclude(typeof(SingleRoom))]和[XmlInclude(typeof(DoubleRoom))]同時加到WebService中。

[XmlInclude(typeof(SingleHouse))]
[XmlInclude(
typeof(DoubleHouse))] public class RoomService : System.Web.Services.WebService

WebService生成XML文檔時出錯。不應是類型XXXX。使用XmlInclude或SoapInclude屬性靜態指定非已知的類型。