Estoy trabajando en un proyecto que utiliza el primer enfoque del contrato. Me dieron un WSDL
y tres xsd's
. Cuando utilizo svcutil
que genera una envoltura alrededor de la clase de respuesta de este modo:svcutil generó clases de contenedor innecesario
public partial class getDataByIdResponse1 {
public getDataByIdResponse getDataByIdResponse;
public getDataByIdResponse1() {
}
public getDataByIdResponse1(getDataByIdResponse getDataByIdResponse) {
this.getDataByIdResponse = getDataByIdResponse;
}
}
El getDataByIdResponse
se envuelve dentro de un objeto getDataByIdResponse1
. Esto se hace por svcutil
y no tengo idea de por qué. El objeto getDataByIdResponse1
no existe en el WSDL
:
<wsdl:message name="getDataById">
<wsdl:part name="response" element="tns:getDataByIdResponse"/>
</wsdl:message>
<xs:element name="getDataByIdResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="data" type="sbc:DataType" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
¿Por qué es el tipo getDataByIdResponse
envuelto en getDataByIdResponse1
? ¿Hay un interruptor para svcutil
que debería haber usado?
"Simplemente use los tipos sin el sufijo numérico y simplemente funciona.", No creo que el código C# compile de esa manera. los tipos sin el sufijo numérico son nombres totalmente diferentes para los compiladores. –