我想使用ASP.NET WebServices創建一個簡單的留言簿Web服務。參數對象的類型[類型]不是原始的
當試圖序列化對象的列表,我得到以下異常:
System.InvalidOperationException: The type of the argument object 'GuestBookService.GuestBookEntry' is not primitive.
我怎樣才能解決這個問題?
我想使用ASP.NET WebServices創建一個簡單的留言簿Web服務。參數對象的類型[類型]不是原始的
當試圖序列化對象的列表,我得到以下異常:
System.InvalidOperationException: The type of the argument object 'GuestBookService.GuestBookEntry' is not primitive.
我怎樣才能解決這個問題?
是GuestBookEntry標記爲可序列化? http://ondotnet.com/pub/a/dotnet/2002/08/26/serialization.html
我有同樣的確切的錯誤,但在我的情況下,解決方案是不同的。 我的錯誤是我創建了一個返回基類類型的Web方法,並試圖返回派生類。
public BaseClass MyMethod() { /*...*/ }
我會嘗試返回BaseClassDerivativeA,BaseClassDerivativeB等加入了自己的田基類的字段中的派生類。在這個意義上,我注意到多態性似乎是not supported。
我已經將我的派生類推廣到一個類,從而在返回類型中刪除了這種多態。這解決了我的錯誤。
如果GuestBookService是一個子類和屬性抱着它是它的父類的類型,那麼你必須給串行額外的類型是這樣的:
Type[] extraTypes = {typeof(GuestBookService)};
XmlSerializer serializer = new XmlSerializer(typeof(DataContainerClass),extraTypes);
由於某些原因,即使在父類中使用了'XMLInclude'和'KnownType',我仍然必須這樣做,以便在嘗試從Android應用程序與WCF服務通信時清除錯誤。 – 2013-08-15 16:23:23
能否請您發佈一些代碼周圍的行拋出這個錯誤?很難單獨診斷。 – 2010-06-08 01:58:59