web-dev-qa-db-fra.com

Héritage de commentaires XML à partir d'interfaces en C #

Je me demandais si quelqu'un savait comment lier un commentaire xml d'interface à une implémentation. Le problème est que je veux que les commentaires de base proviennent d'abord de mon interface. Exemple:

interface myinterface {

       /// <summary>
       /// Does something.
       /// </summary>
       void method1(string foo);

}

et alors la mise en œuvre est:

public class myclass : myinterface {


       public void method1(string foo) {
             //do something...
       }
}

Alors maintenant, si je survole la méthode avec ma souris après l'instanciation de l'objet:

myclass foo = new myclass();
foo.method1("do something");

comment faire pour que les commentaires apparaissent dans le hover popup? Est-il possible de lier les commentaires d'interface à la mise en œuvre? Je sais qu'il existe un moyen d'utiliser Java, mais je ne trouve pas la solution pour C #.

Merci

65
u84six

Lier des commentaires XML n'est pas possible à mon humble avis, mais vous pouvez utiliser un outil tel que GhostDoc pour copier le commentaire XML de votre classe/interface de base dans la classe implémentation/dérivée.

18
Noffls

XMLDoc définit une balise <include /> pour inclure les commentaires d'un autre fichier existant depuis Visual Studio 2003. La plus grande réserve est que le fichier référencé doit être un fichier contenant uniquement la documentation XMLDoc, et non un autre fichier source.

Voir la page MSDN pour plus de détails.

8
psaxton

Si vous utilisez GhostDoc cela aide beaucoup à "transporter" la documentation des interfaces vers le code d'implémentation.

7
Fredrik Mörk

On dirait que <inheritdoc/> obtiendra bientôt un support natif.

Voir https://github.com/dotnet/csharplang/issues/31

0
Konard

http://blog.x-tensive.com/2008/02/fixml.html

C'est un post-processeur qui a certaines options supplémentaires pour lesquelles le système de documentation original manque.

Sur le site:

Bref résumé:

FiXml est un post-processeur de la documentation XML produite par C #\Visual Basic.Net. Il aborde certains des cas les plus ennuyeux liés à la rédaction de documentation XML dans ces langages: - Absence de prise en charge de l’héritage de la documentation à partir de la classe de base ou de l’interface. C'est à dire. une documentation pour tout membre substitué doit être écrite à partir de zéro, bien qu'il soit normalement souhaitable d'en hériter au moins une partie. - Aucune prise en charge de l'insertion de modèles de documentation couramment utilisés, tels que «Ce type est singleton - utilisez sa propriété pour obtenir la seule instance de celle-ci. ", ou même" Initialise une nouvelle instance de classe. "

0
Andreas Reiff

J'ai construit un outil de ligne de commande pour post-traiter les fichiers de documentation XML en ajoutant un support pour la balise <inheritdoc />.

Bien que cela n’aide pas Intellisense dans le code source, il permet aux fichiers de documentation XML modifiés d’être inclus dans un package NuGet et fonctionne donc avec Intellisense dans les packages NuGet référencés.

Voir www.inheritdoc.io pour plus d'informations (version gratuite disponible).

0
K Johnson