I agree with you: I’d prefer to avoid to modify the wsdl.
I noticed the SS wsdl defines the DTOs (request and response) as following
<xs:complexType name="GetCountries">
<xs:sequence>
<xs:element minOccurs="0" name="Ids" nillable="true" xmlns:q4="http://schemas.microsoft.com/2003/10/Serialization/Arrays" type="q4:ArrayOfint" />
</xs:sequence>
</xs:complexType>
<xs:element name="GetCountries" nillable="true" type="tns:GetCountries" />
having a dedicated empty node xs:element and a different xs:complexType node for the same DTO
I noticed in other wsdls (generated by other frameworks) the xs:complexType has been wrapped/included as child of the xs:element as following:
<xs:element name="GetCountries" nillable="true" type="tns:GetCountries">
<xs:complexType name="GetCountries">
<xs:sequence>
<xs:element minOccurs="0" name="Ids" nillable="true" xmlns:q4="http://schemas.microsoft.com/2003/10/Serialization/Arrays" type="q4:ArrayOfint" />
</xs:sequence>
</xs:complexType>
</xs:element>
using that wsdl(all other parts including port, message and binding are exactly the same as SS wsdl) the generated proxy class creates a dedicated type for the input parameter named “Request”
public GetCountriesResponse GetCountries(GetCountriesRequest GetCountries1){..}
that is exaclty what I’m looking for. Do you know if that DTO schema definition (having the xs:complex type wrapped in the releated xs:element) can be accomplished using same dedicated property of the System.Runtime.Serialization.DataContractAttribute or how can be done?