2009-03-17 16 views
22

según la especificación WSDL de W3 existe la posibilidad de agregar etiquetas "wsdl: document" a la salida WSDL para que las personas que usen ese servicio web tengan una mejor explicación/documentación sobre este servicio webAgregar comentarios a una salida WSDL de WCF/.Net

¿Alguien sabe cómo hacer que WCF use estos comentarios/descripciones, o cómo escribir el código en C# que esos comentarios se exportan como parte del wsdl?

Gracias, Michael

Respuesta

1

WCF no lo hará por sí mismo por desgracia. Hay puntos de extensibilidad para la generación WSDL que puede usar para lograr esto al menos parcialmente: busque la interfaz IWSDLExportExtension.

Tengo un small example sobre cómo implementar una extensión de exportación WSDL simple en mi sitio web que podría ayudarlo a comenzar.

+0

Gracias, pero eso es solo un primer paso. Lo que realmente me gustaría es la capacidad de exportar cualquier "/// comentarios ...." que hice en el ServiceContract, OperationContract y DataContract en WSDL y XSD. ¿Algunas ideas? –

3

Si está diseñando/codificando en clases C#, adornado con [ServiceContract] y [OperationContract], entonces no sé de ninguna manera para exportar la documentación que pueda tener sobre esas clases y métodos al WSDL , Desafortunadamente.

me horroricé por eso también - lo que esperaba ningún /// comentarios en mis clases y métodos para aparecer en el WSDL - sin suerte :-(

Nuestra solución ahora es la siguiente: 1) creamos una "maqueta" básica de nuestra interfaz de servicio con todas las operaciones en C# 2) la compilamos en un ensamblaje 3) extraemos los metadatos (WSDL, XSD) de ese ensamblaje y luego desechamos el "prototipo" de C# 4) manualmente agregamos comentarios (xs: anotación/xs: documentación) a WSDL y XSD 5) a partir de ahora, WSDL/XSD son el maestro, y generamos nuestra interfaz a partir de esas descripciones

engorroso y molesto, pero funciona bastante bien para nosotros.

¡Espero que VS2010/WCF 4.0 nos brinde un poco más de apoyo en esta área!

Marc

+0

Esto parece un buen enfoque. – Cheeso

11

Parece que el proyecto de la comunidad WCFExtras en CodePlex ofrece un trabajo en torno a las limitaciones de .NET 3.5.

+1

Acabo de probarlo - funciona como un encanto incluso si mi solución está en .NET 4.0. Gracias Joannes –

0
[WebService(Namespace = "XXXXXXXXXXXXX", **Description**="V0.2.42")] 

Descripción poner lo que quiera en el .NET 4.0, no está seguro de qué versiones ... probablemente un poco tarde en responder, pero las respuestas parecen ser más compleja de lo que se requiere para agregar una propaganda WSDL únicamente desarrolladores ven.

Cuestiones relacionadas