web-dev-qa-db-fra.com

Commentaire XML manquant pour le type ou le membre visible publiquement

Je reçois cet avertissement: "Commentaire XML manquant pour le type ou le membre visible publiquement".

Comment résoudre ceci?

354
Nirmal

5 options:

  • Complétez les commentaires sur la documentation (excellent, mais prend du temps)
  • Désactiver la génération de commentaires (dans les propriétés du projet)
  • Désactiver l'avertissement dans les propriétés du projet (dans 'Propriétés du projet', accédez à Propriétés du projet -> Générer> "Erreurs et avertissements" (section), Supprimer les avertissements (zone de texte), ajoutez 1591 (liste séparée par des virgules))
  • Utilisez #pragma warning disable 1591 pour désactiver l’avertissement uniquement pour quelques bits de code (et #pragma warning restore 1591 par la suite).
  • Ignorer les avertissements (mauvaise idée - vous allez rater de nouveaux "vrais" avertissements)
622
Jon Skeet

Ajoutez des commentaires XML aux types et aux membres visibles publiquement :)

///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
   return 42;
}

Vous avez besoin de ces commentaires de type <summary> sur tous les membres - ils apparaissent également dans le menu contextuel intellisense.

La raison qui vous avertit, c'est que vous avez configuré votre projet pour générer le fichier XML de documentation (dans les paramètres du projet). Ceci est utile pour les bibliothèques de classes (assemblées .dll), ce qui signifie que les utilisateurs de votre fichier .dll obtiennent la documentation intellisense pour votre API directement dans visual studio.

Je vous recommande de vous procurer une copie de GhostDoc Visual Studio AddIn .. Facilite grandement la documentation.

87
Isak Savo

Supprimer les avertissements pour les commentaires XML

(ce n'est pas mon travail, mais je l'ai trouvé utile alors j'ai inclus l'article et le lien)

http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/

Ici, je vais vous montrer comment supprimer des avertissements pour les commentaires XML après une construction de Visual Studio.

Arrière-plan

Si vous avez coché la marque "Fichier de documentation XML" dans les paramètres du projet Visual Studio, un fichier XML contenant tous les commentaires XML est créé. En outre, de nombreux avertissements sont également générés dans les fichiers générés par le concepteur, en raison de commentaires XML manquants ou erronés. Bien que les avertissements nous aident parfois à améliorer et à stabiliser notre code, obtenir des centaines d'avertissements de commentaires XML n'est qu'un problème. Avertissements

Commentaire XML manquant pour le type ou le membre visible publiquement… Le commentaire XML sur… a une balise param pour '…', mais il n'y a pas de paramètre portant ce nom. Parameter '…' N'a pas de balise param correspondante dans le commentaire XML pour '…' (mais les autres paramètres le font) Solution

Vous pouvez supprimer tous les avertissements dans Visual Studio.

  • Cliquez avec le bouton droit sur l'onglet Projet/Propriétés/Générer de Visual Studio.

  • Insérez les numéros d’avertissement suivants dans "Supprimer les avertissements": 1591,1572,1571,1573,1587,1570

38
Sprotty

Insérer un commentaire XML. ;-)

/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
    get;
    set;
}

Cela peut sembler une blague au premier abord, mais cela peut en fait être utile. Pour moi, il s'est avéré utile de réfléchir aux méthodes utilisées même pour les méthodes privées (à moins que ce soit vraiment trivial, bien sûr).

22
Matthias Meid

Il existe un autre moyen de supprimer ces messages sans qu'il soit nécessaire de modifier le code ou de bloquer le pragma. Utilisation de Visual Studio - Allez dans les propriétés du projet> Générer> Erreurs et avertissements> Supprimer les avertissements - ajoutez 1591 à la liste des codes d'avertissement.

enter image description here

19
ekhanna

En effet, un fichier de documentation XML a été spécifié dans vos propriétés de projet et votre méthode/classe est publique et manque de documentation.
Vous pouvez soit :

  1. Désactiver la documentation XML:

    Cliquez avec le bouton droit sur votre projet -> Propriétés -> onglet 'Construire' -> décochez la case Fichier de documentation XML.

  2. Asseyez-vous et écrivez vous-même la documentation!

Le résumé de la documentation XML ressemble à ceci:

/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..
13
Ajay Aradhya

Je voulais ajouter quelque chose aux réponses énumérées ici:

Comme Isak l'a souligné, la documentation XML est utile pour les bibliothèques de classes, car elle fournit l'intellisense à tout consommateur de Visual Studio. Par conséquent, une solution simple et correcte consiste simplement à désactiver la documentation de tout projet de niveau supérieur (tel que l'interface utilisateur, etc.), qui ne sera pas implémentée en dehors de son propre projet.

De plus, je voulais souligner que l'avertissement ne concerne que les membres visibles publiquement. Ainsi, si vous configurez votre bibliothèque de classes pour n'exposer que ce dont elle a besoin, vous pouvez vous en tirer sans documenter les membres private et internal.

8
Mike Guthrie

Je sais que c'est un très vieux sujet, mais c'est la première réponse sur Google, alors j'ai pensé ajouter cette information:

Ce problème ne se produit que lorsque le niveau d'avertissement est défini sur 4 sous "Propriétés du projet" -> "Générer". À moins que vous n'ayez vraiment besoin de cette quantité d'informations, définissez le nombre sur 3 et supprimez ces avertissements. Bien entendu, la modification du niveau d'avertissement n'affecte pas que les commentaires. Veuillez vous reporter à la documentation si vous ne savez pas exactement ce qui vous manquera:
https://msdn.Microsoft.com/en-us/library/thxezb7y.aspx

8
Marius Agur

Dans votre solution, une fois que vous avez coché la possibilité de générer un fichier de document XML, il commence à vérifier que vos membres publics possèdent le XMLDoc. Dans le cas contraire, vous recevrez un avertissement pour chaque élément. si vous ne voulez pas vraiment publier votre DLL et que vous n'avez pas besoin de documentations, accédez à votre solution, créez-la section, et désactivez-la, sinon si vous en avez besoin, remplissez-la, et s'il y a peu d'importance les propriétés et les champs, juste les surpasser avec l'instruction pré-compilateur #pragma warning disable 1591 vous pouvez également restaurer l'avertissement: #pragma warning restore 1591

utilisation de pragma: n'importe où dans le code avant l'endroit où vous recevez l'avertissement du compilateur pour ... (pour le fichier, placez-le dans l'en-tête et vous n'avez pas besoin de l'activer à nouveau, pour une classe unique ou une méthode, une méthode, ou ... vous n'avez pas non plus besoin de l'enrouler, vous pouvez l'appeler et la restaurer au hasard (commencez en début de fichier et finissez dans une méthode)), écrivez ce code:

#pragma warning disable 1591 et si vous avez besoin de le restaurer, utilisez: #pragma warning restore 1591

Voici un exemple:

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using RealEstate.Entity.Models.Base;

namespace RealEstate.Models.Base
{
    public class CityVM
    {

#pragma warning disable 1591

        [Required]
        public string Id { get; set; }

        [Required]
        public string Name { get; set; }

        public List<LanguageBasedName> LanguageBasedNames { get; set; }

        [Required]
        public string CountryId { get; set; }

#pragma warning restore 1591

        /// <summary>
        /// Some countries do not have neither a State, nor a Province
        /// </summary>
        public string StateOrProvinceId { get; set; }
    }
}

Note cette directive pragma commence au début de la ligne

6
deadManN

La réponse de Jon Skeet fonctionne très bien lorsque vous construisez avec VisualStudio. Cependant, si vous construisez le sln via la ligne de commande (dans mon cas, c'était via Ant), vous constaterez peut-être que msbuild ignore les requêtes de suppression sln.

Ajouter ceci à la ligne de commande msbuild a résolu le problème pour moi:

/p:NoWarn=1591
2
Bill Tarbell
#pragma warning disable 1591
#pragma warning disable 1591
#pragma warning disable 1572
#pragma warning disable 1571
#pragma warning disable 1573
#pragma warning disable 1587
#pragma warning disable 1570
2
Petar

La définition du niveau d’avertissement sur 2 supprime ces messages. Je ne sais pas si c'est la meilleure solution car elle supprime également les avertissements utiles.

2
danpop

Vous devez ajouter /// Comment pour le membre pour lequel l'avertissement est affiché.

voir ci-dessous le code

public EventLogger()
{
    LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}

Il affiche l'avertissement Commentaire XML manquant pour le type ou le membre visible publiquement '.EventLogger ()'

J'ai ajouté un commentaire pour le membre et l'avertissement est parti.

///<Summary>
/// To write a log <Anycomment as per your code>
///</Summary>
public EventLogger()
{
    LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}
1
Sujeet Singh

Fichier> Éditer> Voir le projet (cliquer)

En bas de la liste déroulante (cliquez sur Travaux ouverts/en cours> Propriétés), ouvrez la page des propriétés du projet sous "Construire" sous "Sortie". "Décocher" documentation XML case à cocher.

Reconstruire et pas d'avertissements.

1
tom