2009-06-04 18 views

Respuesta

105

Usando svcutil, puede crear interfaces y clases (contratos de datos) desde el WSDL.

svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic) 

Esto creará un archivo llamado "your.cs" en C# (o "your.vb" en VB.NET) que contiene todos los elementos necesarios.

Ahora, necesita crear una clase "MyService" que implementará la interfaz de servicio (IServiceInterface) - o las diversas interfaces de servicio - y esta es su instancia de servidor.

Ahora, una clase en sí misma realmente no ayuda aún: tendrá que alojar el servicio en alguna parte. Necesita crear su propia instancia de ServiceHost que aloja el servicio, configurar puntos finales, etc., o puede alojar su servicio dentro de IIS.

+0

Intenté lo mismo con svcutil, pero realmente no tuve éxito con las fallas. ¿Quizás tengas algunas sugerencias para mi problema: http://goo.gl/dlen – Juri

+11

"svcutil your.wsdl your.xsd" es lo que necesitaba para que mi trabajo! ¡Gracias! –

+2

Consulte esta respuesta SO para obtener información sobre la descarga de wsdl y xsd en un formato que le gustará a svcutil. http://stackoverflow.com/questions/286657/what-is-the-best-way-to-download-all-of-the-wsdl-files-exposed-by-a-wcf-service –

7

Puede usar svcutil.exe para generar código de cliente. Esto incluiría la definición del contrato de servicio y cualquier contrato de datos y contratos de falla requeridos.

Luego, simplemente elimine el código de cliente: clases que implementan los contratos de servicio. Luego deberá implementarlos usted mismo, en su servicio.

39

Hay buenos recursos por ahí si sabe qué buscar. Pruebe "Contrato primero" y WCF. o "WSDL primero" y WCF.

He aquí una selección:

+2

Para cualquier persona que siga la * Descripción general básica del artículo WSDL-First *: tome nota del comentario que habla sobre ' ReplyAction = "*" '. Parece que debes deshacerte de eso. Hay un camino de explicaciones de ese comentario que da el razonamiento, pero no lo he leído. –

28

Uso svcutil. exe con el /sc cambiar a gen los contratos de WCF. Esto creará un archivo de código que puede agregar a su proyecto. Contendrá todas las interfaces y tipos de datos que necesita para crear su servicio. Cambie la ubicación de salida utilizando el interruptor /o, o puede encontrar el archivo en la carpeta donde ejecutó svcutil.exe. El idioma predeterminado es C# pero creo (nunca lo he intentado) debería poder cambiar esto usando /l:vb.

svcutil /sc "WSDL file path" 

Si su WSDL tiene algún archivo XSD compatible, páselos como argumentos después del WSDL.

svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path" 

A continuación, cree una nueva clase que sea su servicio e implemente la interfaz de contrato que acaba de crear.

+0

Vea también: [MSDN sobre cómo implementar el WSDL de otra persona] (https://msdn.microsoft.com/en-us/library/ms735109 (v = vs.110) .aspx) – sq33G

1

con la función "Agregar referencia de servicio" en Visual Studio, puede insertar la dirección como:

archivo: ///path/to/wsdl/file.wsdl

Y se cargará correctamente

Cuestiones relacionadas