WCF数据协定可以递归吗?例如二叉树? ASMX服务在支持递归数据结构方面有区别吗?

时间:2009-09-18 14:04:24

标签: wcf wsdl soa

在SOA中我认为wsdl不支持递归数据类型,但我看到了代理实际工作的一些例子。有谁知道更多这个?

2 个答案:

答案 0 :(得分:2)

允许递归类型定义,甚至允许循环对象图和可序列化。但是,为了防止在序列化和反序列化时耗尽堆栈空间,您需要创建一个自定义行为来覆盖CreateSerializer方法,并在创建DataContractSerializer时将preserveObjectReferences参数设置为true。请参阅James Kovacs'blog了解更多信息。

答案 1 :(得分:0)

请通过递归来定义你的意思。以下是用于WSDL的有效XML模式:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
     elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="Node" type="NodeType"/>
    <xs:complexType name="NodeType">
        <xs:sequence>
            <xs:element name="Node" type="NodeType"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>