2009-03-17 15 views
22

in base alle specifiche WSDL da W3, è possibile aggiungere tag "wsdl: document" all'output WSDL in modo che le persone che utilizzano quel servizio Web dispongano di una spiegazione/documentazione migliore questo servizio web.Aggiunta di commenti a un output WSDL da WCF/.Net

Qualcuno sa come rendere WCF utilizzare questi commenti/descrizioni, o come scrivere il codice in C# che quei commenti vengono esportati come parte del wsdl?

Grazie, Michael

risposta

1

WCF non lo farà è da sola, purtroppo. Esistono punti di estensibilità per la generazione WSDL che è possibile utilizzare per eseguire questo almeno parzialmente: Cercare l'interfaccia IWSDLExportExtension.

Ho un small example su come implementare una semplice estensione di esportazione WSDL sul mio sito Web che potrebbe aiutarti a iniziare.

+0

Grazie - ma questo è solo un primo passo. Quello che mi piacerebbe davvero è la possibilità di esportare qualsiasi "/// commenti ...." che ho fatto su ServiceContract, OperationContract e DataContract nel WSDL e XSD. Qualche idea? –

3

Se stai progettando/codifica in classi C#, adornate con [ServiceContract] e [OperationContract], allora non conosco alcun modo per esportare la documentazione che potresti avere su tali classi e metodi nel WSDL , purtroppo.

Sono rimasto allibito da quello troppo - mi aspettavo eventuali /// commenti sulle mie classi e metodi di presentarsi nel WSDL - senza fortuna :-(

La nostra soluzione ora è questo: 1) creiamo un "mockup" di base della nostra interfaccia di servizio con tutte le operazioni in C# 2) lo compiliamo in un assembly 3) estraiamo i metadati (WSDL, XSD) da quell'assembly e poi buttiamo via il "prototipo" C# 4) aggiungiamo manualmente commenti (xs: annotation/xs: documentation) al WSDL e XSD 5) da ora in poi, il WSDL/XSD sono il master - e generiamo la nostra interfaccia da quelle descrizioni

Ingombrante e fastidioso, ma funziona abbastanza bene per noi.

Spero davvero che VS2010/WCF 4.0 ci porti un po 'più di supporto in questo settore !!

Marc

+0

Questo sembra un buon approccio. – Cheeso

11

Sembra che il progetto comunitario WCFExtras su CodePlex fornisce un work-around i limiti di .NET 3.5.

+1

Appena provato, funziona come un incantesimo anche se la mia soluzione è in .NET 4.0. Grazie Joannes –

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

Descrizione mettere quello che vuoi in .NET 4.0, non è sicuro che le versioni ... Probabilmente un po 'in ritardo nella risposta, ma le risposte sembrano più complessa di quanto richiesto per aggiungere un trafiletto WSDL soli sviluppatori vedono.

Problemi correlati