如何在Web服务中公开自定义对象(带子对象)?

时间:2010-02-11 16:03:37

标签: asp.net web-services object

我对网络服务不熟悉并希望确保我正确地做事。

我有一个自定义对象,它也有子对象。 (假设公司对象,子对象是Employee对象的集合)

我希望Web服务返回Company对象的集合。我是否使服务返回数据集并自定义生成包含表示不同对象的数据表的数据集?

最好的方法是什么?我试图将它序列化,但这似乎也不起作用。

我试过这个dll http://www.codeproject.com/KB/linq/linqsqlserialization.aspx

但输出XML似乎不包含子对象。

1 个答案:

答案 0 :(得分: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的客户端。