2009-03-12 3 views
2

Leute,Lassen Sie Svcutil Dokumentation aus C# -Dateien abholen?

Ich erstelle einen neuen WCF-Service und begann mit meiner Service-Schnittstelle. Sieht so etwas wie:

public interface ISomethingService 
    { 
     /// <summary> 
     /// some description 
     /// </summary> 
     /// <version>2.13.0</version> 
     /// <copyright>2009 by myself</copyright> 
     /// <author>Marc Scheuner</author> 
     /// <param name="request">The request object</param> 
     [OperationContract] 
     SomethingResponse GetList(SomethingRequest request); 
    } 

Nun, ich auch einige Datenverträge in einer anderen Datei beschreibt die SomethingRequest und SomethingResponse Nachrichten erstellt.

Ich kompilierte mein Projekt und feuerte svcutil.exe, um die Metadaten (WSDL und XSD) aus der DLL zu extrahieren - aber ich kann nicht herausfinden, ob es einen Weg gibt, alle meine Kommentare und Erklärungen in die WSDL zu bekommen/XSD in/Knoten.

Bin ich blind für einen weiteren obskuren svcutil.exe-Parameter, oder gibt es wirklich keine Möglichkeit, diese Dokumentation in den Metadaten automatisch zu generieren?

EDIT: ok, basierend auf Marc Gravell Antwort, sind die Kommentare und Dokumentation Strings weder in der kompilierten DLL noch über das MEX-Metadatenaustauschprotokoll (schade!).

SO DANN: Wie dokumentieren Sie Ihre WCF-Dienste, wenn Sie einem Drittanbieter die Informationen geben müssen, die er für den Zugriff auf Ihren Dienst benötigt? Gibt es ein Tool "NService" oder "Sandcastle für WCF", das meine WCF-Dienstbibliothek scannt und die WSDL und XSD aus dem Quellcode erstellt, einschließlich der Anmerkungen?

Kann nicht scheinen, eine ganze Reihe von Tools und Wege zu finden, dies zu tun - zu meiner großen Überraschung, ehrlich ....

Marc

Antwort

3

svcutil.exe verbraucht die „mex“ API, und hat nur Zugriff auf eine Teilmenge der Metadaten. Kommentare sind nicht enthalten (noch, IIRC, ist [DescriptionAttribute] in großem Umfang).

Sie müssen möglicherweise auf externe Dokumentation verlassen (das heißt eine Hilfeseite/dead tree). Eine weitere Option (obwohl es eine Reihe von reinen SOA-Regeln durchbricht) besteht darin, die Entitäten/Schnittstellen in einer dll + xml; SVCUTIL (und die IDE) können übereinstimmende Typen aus vorhandenen Assemblys wiederverwenden.

+0

Dank - so kennt jemand ein eigenständiges Tool oder VS-Plugin, das die Quelle der Service-Bibliothek analysiert werden und mit Anmerkungen versehen WSDL und XSD aus diesen Klassen erzeugen ?? –

Verwandte Themen