2010-02-11 64 views
0

我對Web服務很陌生,希望確保自己正確地做事。如何在Web服務中公開自定義對象(包含子對象)?

我有包含子對象以及自定義對象。 (假設公司對象,子對象是Employee對象的集合)

我想網絡服務來回報公司對象的集合。我是否使服務返回一個Dataset並自定義生成一個包含代表不同對象的數據表的數據集?

這樣做的最好方法是什麼?我試圖序列化它,但這似乎也不起作用。

我想這個dll http://www.codeproject.com/KB/linq/linqsqlserialization.aspx

但輸出XML似乎不包括子對象。

+1

你能澄清 - 您使用傳統的ASP.NET 2.0 Web服務(ASMX)或.NET WCF服務?這會影響答案。 – 2010-02-11 16:23:10

+0

您的數據源當前是數據集,還是您正在談論轉換爲數據集?這些業務對象是? – 2010-02-11 16:35:15

+0

傳統2.0。數據源是公司對象的列表 – Wil 2010-02-11 17:55:40

回答

1

無論您使用的是2.0框架(與ASMX Web服務,它不再支持)或3.0框架(與WCF),都將處理複雜對象的回報只要它們是序列化的。在2.0框架中,這意味着能夠使用[Serializable]屬性標記對象。在3.0框架中,您正在使用[DataContract]屬性實現序列化。 http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datacontractattribute.aspxhttp://msdn.microsoft.com/en-us/library/system.serializableattribute.aspx

兩個框架將使準備客戶端WSDL爲客戶消耗你的複雜的對象。由於它們是非原語的,因此您將僅限於基於SOAP的客戶端,因爲返回的有效負載將需要複雜的表示。

相關問題