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

WCF数据协定可以是递归的吗?例如二叉树?在支持递归数据结构方面与ASMX服务有区别吗?,wcf,wsdl,soa,Wcf,Wsdl,Soa,在SOA中,我相信wsdl不支持递归数据类型,但我看到了一些代理实际工作的示例。有人知道更多吗?请定义递归的含义。以下是在WSDL中使用的有效XML架构: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified

在SOA中,我相信wsdl不支持递归数据类型,但我看到了一些代理实际工作的示例。有人知道更多吗?

请定义递归的含义。以下是在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>


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

假设您有这样的东西:[DataContract]公共类树{[DataMember]公共树左{get;set;}[DataMember]公共树右{get;set;[DataMember]公共字符串数据{get;set;}}}在SOA中,递归数据类型不受支持是真的吗?@Neo:我从来没有听说过。如果你能找到引文,请把它贴出来。谢谢特拉维斯,这就是我一直在寻找的答案。真的很好的博客