455 Stimmen

Fehlender XML-Kommentar für öffentlich sichtbaren Typ oder Mitglied

Ich erhalte diese Warnung: "Fehlender XML-Kommentar für öffentlich sichtbaren Typ oder Mitglied".

Wie lässt sich das Problem lösen?

28voto

Matthias Meid Punkte 12250

Fügen Sie einen XML-Kommentar ein. ;-)

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

Dies mag auf den ersten Blick wie ein Scherz erscheinen, aber es kann tatsächlich nützlich sein. Für mich hat es sich als hilfreich erwiesen, darüber nachzudenken, was die Methoden selbst bei privaten Methoden tun (es sei denn, sie sind wirklich trivial, natürlich).

19voto

Nameless Punkte 915

Dies liegt daran, dass eine XML-Dokumentationsdatei in Ihren Projekteigenschaften angegeben wurde und Ihre Methode/Klasse öffentlich ist und keine Dokumentation enthält.
Sie können entweder :

  1. Deaktivieren Sie die XML-Dokumentation:

    Klicken Sie mit der rechten Maustaste auf Ihr Projekt -> Eigenschaften -> Registerkarte "Erstellen" -> deaktivieren Sie die Option XML-Dokumentationsdatei.

  2. Setzen Sie sich und schreiben Sie die Dokumentation selbst!

Die Zusammenfassung der XML-Dokumentation lautet wie folgt:

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

10voto

Marius Agur Punkte 252

Ich weiß, dass dies ein sehr alter Thread ist, aber es ist die erste Antwort auf Google, also dachte ich, ich würde diese Information hinzufügen:

Dieses Verhalten tritt nur auf, wenn die Warnstufe unter "Projekteigenschaften" -> "Erstellen" auf 4 eingestellt ist. Wenn Sie nicht wirklich so viele Informationen benötigen, können Sie die Warnstufe auf 3 setzen, und Sie werden diese Warnungen loswerden. Natürlich wirkt sich das Ändern der Warnstufe nicht nur auf die Kommentare aus, also lesen Sie bitte in der Dokumentation nach, wenn Sie sich nicht sicher sind, was Ihnen entgeht:
https://msdn.microsoft.com/en-us/library/thxezb7y.aspx

8voto

Mike Guthrie Punkte 3979

Ich wollte den hier aufgeführten Antworten noch etwas hinzufügen:

Wie Isak hervorhob, ist die XML-Dokumentation für Klassenbibliotheken nützlich, da sie Intellisense für alle Verbraucher in Visual Studio bietet. Daher ist eine einfache und korrekte Lösung, um einfach deaktivieren Sie die Dokumentation für jede Top-Level-Projekt (z. B. UI, etc.), die nicht außerhalb seines eigenen Projekts implementiert werden wird.

Außerdem wollte ich darauf hinweisen, dass sich die Warnung nur auf öffentlich sichtbar Mitglieder. Wenn Sie also Ihre Klassenbibliothek so einrichten, dass sie nur das Notwendige offenlegt, können Sie auf die Dokumentation von private y internal Mitglieder.

7voto

Hassan Faghihi Punkte 1664

Sobald Sie in Ihrer Lösung die Option zum Generieren von XML-Dokumenten aktiviert haben, werden Ihre öffentlichen Mitglieder auf das Vorhandensein von XMLDoc überprüft, und wenn dies nicht der Fall ist, erhalten Sie für jedes Element eine Warnung. wenn Sie nicht wirklich wollen, um Ihre DLL freizugeben, und auch Sie brauchen keine Dokumentationen dann, gehen Sie zu Ihrer Lösung, Build-Abschnitt, und schalten Sie es aus, sonst, wenn Sie es brauchen, so füllen Sie, und wenn es unwichtige Eigenschaften und Felder, nur übertreffen sie mit Pre-Compiler-Anweisung #pragma warning disable 1591 können Sie auch die Warnung wiederherstellen: #pragma warning restore 1591

pragma usage: any where in code before the place you get compiler warning for... (for file, put it in header, and you do not need to enable it again, for single class wrap around a class, or for method wrap around a method, or ... you do not either need to wrap it around, you can call it and restore it casually (start in begin of file, and end inside a method)), write this code:

#pragma warning disable 1591 und für den Fall, dass Sie sie wiederherstellen müssen, verwenden Sie: #pragma warning restore 1591

Hier ein Beispiel:

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; }
    }
}

Hinweis dass die pragma-Richtlinie am Anfang der Zeile

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X