Creo que lo que busca es: svcutil.exe /r your-dtos.dll
/referencia: - tipos referencia en el ensamblado especificado. Al generar clientes, use esta opción para especificar conjuntos que pueden contener tipos que representan los metadatos que se importan.(Corta: /r)
En mi opinión, el acoplamiento ajustado del proxy de WCF, punto final del canal, las operaciones de servicio y cargas útiles dto en el mismo proxy cliente generado es un importante fallo de diseño.
Esto es lo que me impulsó a resolver en mi open web services framework donde desacoplar el punto final y la carga útil que permite:
- El cliente mismo servicio web (es decir Soap11, soap12, XML, JSON) para poder llamar a cualquier servicio web.
- También me permite usar la misma instancia de DataContract dto en cualquiera de los clientes del servicio web
- Esto tiene muchos beneficios, incluyendo la posibilidad de exponer el mismo servicio web en una serie de puntos finales diferentes sin ninguna configuración adicional. De este modo, proporcionar puntos finales de servicio web optimizados para cada consumidor de mi servicio. P.ej.
- XML para los clientes de interoperabilidad y fuertemente del tipo,
- JSON para clientes Ajax,
- WSDL para entornos que prefieren generan código (es decir, Flex Builder, VS.NET 'Agregar referencia de servicio', etc)
en mi empresa hemos desarrollado cientos de servicios web denominados por un número de clientes distintos, es decir, Ajax, flash/ActionScript, C++, Silverlight, ASP.NET y ser capaz de llamar a la misma a través del servicio web tiene diferentes criterios de valoración te salvó s innumerables horas.
¿hay alguna forma de controlar esto durante la ejecución de wsdl/svcutil.exe? Tengo un wsdl que importa algunos xsds y quiero generar una interfaz de servicio usando wsdl.exe o svcutil.exe desde un símbolo del sistema. durante la ejecución de wsdl.exe/svcutil.exe, ¿puedo controlar el no generar clases para los tipos en los xsds? –
Parte de la razón por la que existen WSDL es para definir el esquema del objeto necesario para comunicarse con ellos. El wsdl.exe y svcutil.exe están diseñados para generar clases para estos objetos, no creo que haya una forma de prevenirlo. –
Jeremy, eso es cierto si el cliente no sabe cómo comunicarse con el servicio. Si los desarrolladores tienen acceso a los dlls de contrato reales, no necesitan el WSDL en absoluto. Acuerdan el contrato usando el mismo dlls. –