Ricevo questo avviso: "Commento XML mancante per tipo o membro pubblicamente visibile".
Come risolverlo?
Ricevo questo avviso: "Commento XML mancante per tipo o membro pubblicamente visibile".
Come risolverlo?
Risposte:
5 opzioni:
#pragma warning disable 1591
per disabilitare l'avviso solo per alcuni bit di codice (e in #pragma warning restore 1591
seguito)Aggiungi commenti XML ai tipi e ai membri visibili pubblicamente ovviamente :)
///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
return 42;
}
Sono necessari questi <summary>
commenti di tipo su tutti i membri, che vengono visualizzati anche nel menu a comparsa intellisense.
Il motivo per cui ricevi questo avviso è perché hai impostato il tuo progetto per l'output del file XML della documentazione (nelle impostazioni del progetto). Questo è utile per le librerie di classi (assembly .dll), il che significa che gli utenti del tuo .dll stanno ottenendo la documentazione di intellisense per la tua API proprio lì in Visual Studio.
Ti consiglio di procurarti una copia del componente aggiuntivo GhostDoc Visual Studio. Rende la documentazione molto più semplice.
GhostDoc
- il più stupido AddOn che abbia mai visto. Genera documentazione. Ora metti in pausa un secondo per pensarci. Volete che il vostro codice sia più comprensibile, quindi utilizzate uno strumento che generi documentazione esclusivamente in base al nome del metodo e ai tipi di argomenti. ha senso per te? L'utente può vedere il nome e i tipi degli argomenti, aggiungere commenti a DateTime date
- La data realtà non aiuta.
Elimina avvisi per commenti XML
(non il mio lavoro, ma l'ho trovato utile, quindi ho incluso l'articolo e il link)
http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/
Qui ti mostrerò come eliminare gli avvisi per i commenti XML dopo una build di Visual Studio.
sfondo
Se è stato selezionato il segno "File di documentazione XML" nelle impostazioni del progetto Visual Studio, viene creato un file XML contenente tutti i commenti XML. Inoltre, riceverai molti avvisi anche nei file generati dal designer, a causa dei commenti XML mancanti o errati. Mentre a volte gli avvisi ci aiutano a migliorare e stabilizzare il nostro codice, ricevere centinaia di avvisi di commento XML è solo una seccatura. Avvertenze
Commento XML mancante per tipo o membro visibile pubblicamente ... Il commento XML su ... ha un tag param per "...", ma non esiste alcun parametro con quel nome Il parametro "..." non ha un tag param corrispondente nel commento XML per "..." (ma altri parametri lo fanno) Soluzione
Puoi eliminare tutti gli avvisi in Visual Studio.
Fare clic con il tasto destro del mouse sul progetto Visual Studio / Proprietà / Scheda Crea
Inserire i seguenti numeri di avviso negli "Elimina avvisi": 1591,1572,1571,1573,1587,1570
C'è un altro modo per sopprimere questi messaggi senza la necessità di alcuna modifica del codice o blocchi pragma. Utilizzo di Visual Studio: accedere alle proprietà del progetto> Genera> Errori e avvisi> Elimina avvisi: aggiungere 1591 all'elenco dei codici di avviso.
#pragma warning disable
ovunque, il che è solo fastidioso.
Inserisci un commento XML. ;-)
/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
get;
set;
}
A prima vista può sembrare uno scherzo, ma in realtà può essere utile. Per me si è rivelato utile pensare a cosa fanno i metodi anche per i metodi privati (a meno che non sia davvero banale, ovviamente).
Questo perché è stato specificato un file di documentazione XML nelle proprietà del progetto e il metodo / classe è pubblico e privo di documentazione.
Puoi:
Fai clic con il pulsante destro del mouse sul tuo progetto -> Proprietà -> scheda "Crea" -> deseleziona il file di documentazione XML.
Il riepilogo della documentazione XML è il seguente:
/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..
Volevo aggiungere qualcosa alle risposte elencate qui:
Come ha sottolineato Isak, la documentazione XML è utile per le librerie di classi, in quanto fornisce intellisense a qualsiasi consumatore all'interno di Visual Studio. Pertanto, una soluzione semplice e corretta è semplicemente disattivare la documentazione per qualsiasi progetto di alto livello (come l'interfaccia utente, ecc.), Che non verrà implementato al di fuori del proprio progetto.
Inoltre, vorrei sottolineare che l'avvertimento si esprime solo sui membri visibili pubblicamente . Quindi, se imposti la tua libreria di classi per esporre solo ciò di cui ha bisogno, puoi cavartela senza documentare private
e internal
membri.
So che questo è un thread molto vecchio, ma è la prima risposta su Google, quindi ho pensato di aggiungere questo po 'di informazioni:
questo comportamento si verifica solo quando il livello di avviso è impostato su 4 in "Proprietà del progetto" -> "Crea" . A meno che tu non abbia davvero bisogno di così tante informazioni, puoi impostarlo su 3 e ti libererai di questi avvisi. Naturalmente, la modifica del livello di avviso influisce non solo sui commenti, quindi fai riferimento alla documentazione se non sei sicuro di cosa ti perderai:
https://msdn.microsoft.com/en-us/library/thxezb7y.aspx
Nella tua soluzione, una volta selezionata l'opzione per generare il file di documento XML, inizia a controllare i tuoi membri pubblici, per avere XMLDoc, in caso contrario, riceverai un avviso per ogni elemento. se non vuoi davvero rilasciare la tua DLL, e quindi non hai bisogno di documentazione, vai alla tua soluzione, costruisci la sezione e disattivala, altrimenti se ne hai bisogno, riempila, e se non sono importanti proprietà e campi, basta superarli con l'istruzione pre-compilatore
#pragma warning disable 1591
è inoltre possibile ripristinare l'avviso:
#pragma warning restore 1591
uso di pragma: qualsiasi punto del codice prima del posto in cui si riceve l'avvertimento del compilatore per ... (per il file, inserirlo nell'intestazione e non è necessario abilitarlo di nuovo, per avvolgere una classe attorno a una classe o per avvolgere il metodo un metodo o ... non è nemmeno necessario avvolgerlo, è possibile chiamarlo e ripristinarlo in modo casuale (iniziare all'inizio del file e terminare all'interno di un metodo)), scrivere questo codice:
#pragma warning disable 1591
e nel caso sia necessario ripristinarlo, utilizzare:
#pragma warning restore 1591
Ecco un esempio:
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; }
}
}
Nota che la direttiva pragma inizia all'inizio della riga
L'impostazione del livello di avviso su 2 elimina questo messaggio. Non so se è la soluzione migliore in quanto elimina anche avvisi utili.
La risposta di Jon Skeet funziona benissimo per quando costruisci con VisualStudio. Tuttavia, se stai costruendo lo sln tramite la riga di comando (nel mio caso era tramite Ant), potresti scoprire che msbuild ignora le richieste di soppressione dello sln.
L'aggiunta di questo alla riga di comando msbuild ha risolto il problema per me:
/p:NoWarn=1591
File > Modifica > Visualizza progetto (fai clic)
Parte inferiore dell'arco a discesa (fare clic su Apri / Lavoro corrente > Proprietà ), pagina delle proprietà del progetto aperta in "Build" in "Output". Casella di controllo "Deseleziona" Documentazione XML .
Ricostruisci e nessun avviso.
Devi aggiungere /// Comment per il membro per il quale viene visualizzato l'avviso.
vedi sotto il codice
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}
Visualizza un commento XML mancante di avviso per tipo o membro visibile pubblicamente '.EventLogger ()'
Ho aggiunto un commento per il membro e un avviso sparito.
///<Summary>
/// To write a log <Anycomment as per your code>
///</Summary>
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}