2010-02-11 56 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的客户端,因为返回的有效负载将需要复杂的表示。

相关问题