2011-06-07 10 views
6

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?

Respuesta

0

estoy en la misma situación (contrato-primero) y svcutil está generando este mismo tipo de código para mí, pero me acaba de cerrar mis ojos tomaron una respiración profunda y la aceptaron :-)

Sólo tiene que utilizar los tipos sin el postfijo numérico y simplemente funciona.

+0

"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. –

0

Estoy en el mismo barco que tú pero no solo quiero vivir con eso. Quiero generar contratos limpios (sin envolver). Si le dieron las wsdl y las xsd, entonces hay algunas reglas que su esquema y wsdl deben seguir para que svc util genere el código desenvuelto. Estos enlaces me ayudaron a comprender el tema un poco mejor

http://pzf.fremantle.org/2007/05/handlign.html

http://mharbauer.wordpress.com/2007/10/19/wcf-datacontract-serializer-and-documentwrapped/

Por ahora mi esquema y WSDL son lo suficientemente pequeños que puedo ajustar que se adhieran a estas reglas.
Sin embargo, al igual que Ron, también he estado en situaciones en las que lo más fácil es simplemente vivir con eso.

Espero que esto ayude.

Cuestiones relacionadas