问题描述:
我们正在尝试使用SOAP格式的TIBCO公开的服务,我们在将受限制的复杂类型对象转换为.net对象时遇到问题。我们能够接收SOAP数据包,但无法将其反序列化为有效的c#对象。但是,对象已实例化但没有任何值(值为null)。响应状态为成功,但对象的转换失败。下面是参考的WSDL片段。除了构建自定义反序列化器之外,还有其他更好的方法可以解决这个问题:
<xs:complexType name="GetIndividualByCIMIdResponseType">
<xs:annotation>
<xs:documentation xml:lang="en">
This response
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="cst:SimpleResponse">
<xs:sequence>
<xs:element name="Individual" type="ns0:IndividualRestrictedType" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="IndividualRestrictedType">
<xs:complexContent>
<xs:restriction base="ns0:IndividualType">
<xs:sequence>
<xs:element name="DoNotMerge" type="ns0:DoNotMergeType" minOccurs="0"/>
<xs:element name="PartyIdentifier" type="ns0:CIMIdentifierType" minOccurs="0"/>
<xs:element name="EmailAccountList" type="ns0:EmailAccountListType" minOccurs="0"/>
<xs:element name="TelephoneServiceList" type="ns0:TelephoneServiceListType" minOccurs="0"/>
<xs:element name="AddressList" type="ns0:AddressListType" minOccurs="0"/>
<xs:element name="DateOfBirth" type="ns0:DateOfBirthType" minOccurs="0"/>
<xs:element name="FamilyName" type="ns0:FamiltyNameType" minOccurs="0"/>
<xs:element name="FirstName" type="ns0:FirstNameType" minOccurs="0"/>
<xs:element name="Initials" type="ns0:InitialsType" minOccurs="0"/>
<xs:element name="MiddleNames" type="ns0:MiddleNamesType" minOccurs="0"/>
<xs:element name="PreferredName" type="ns0:PreferredNameType" minOccurs="0"/>
<xs:el`enter code here`ement name="Sex" type="ns0:SexType" minOccurs="0"/>
<xs:element name="Title" type="ns0:TitleType" minOccurs="0"/>
<xs:element name="YearOfBirth" type="ns0:YearOfBirthType" minOccurs="0"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>