我有一個抽象類。我們稱之爲Lifeform。它看起來是這樣的:ASMX Web服務不能序列化抽象基類
public abstract class Lifeform {
public virtual int Legs { get; set; }
public virtual int Arms { get; set; }
public virtual bool Alive { get; set; }
}
(virtual屬性是由於這樣的事實,我使用NHibernate的,如果他們不虛擬特性,這哼唧。)
我那麼有哪些繼承的類來自Lifeform課堂;我們將它稱爲人類。它看起來是這樣的:
public class Human: Lifeform {
public virtual bool Hat { get; set; }
public virtual int Age { get; set; }
public virtual string Name { get; set; }
}
一切的可愛,我可以用我的班,人類當我使用它得到的腿,胳膊,和活體特性。除此之外,當我嘗試使用Human類創建Web服務時。序列化的對象給了我帽子,年齡和名字 - 但沒有腿,胳膊或者活着的屬性。
我見過的建議使用
[System.Xml.Serialization.XmlInclude(typeof(Human))]
基類(生命形式)一種解決方法,但是,似乎是違反OO一個可怕的黑客。將基類上的鏈接放到繼承它的類上?好惡。
有沒有人遇到過這個特定問題?有什麼想法?如果更深入的例子能夠幫助描述我正在做的更多,我會提供更多的代碼。
我有同樣的問題,這幫助我解決它。不過,我最終設置了類的屬性,而不是返回它的方法。 – Guffa 2009-10-19 19:06:59