Recibo esta advertencia: "Falta el comentario XML para el tipo o miembro visible públicamente".
¿Cómo resolver esto?
Recibo esta advertencia: "Falta el comentario XML para el tipo o miembro visible públicamente".
¿Cómo resolver esto?
Respuestas:
5 opciones:
#pragma warning disable 1591
para deshabilitar la advertencia solo para algunos bits de código (y #pragma warning restore 1591
luego)Agregue comentarios XML a los tipos y miembros visibles públicamente, por supuesto :)
///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
return 42;
}
Necesitas estos <summary>
comentarios de tipo en todos los miembros; estos también se muestran en el menú emergente de intellisense.
La razon que recibe esta advertencia es porque ha configurado su proyecto para que muestre el archivo xml de documentación (en la configuración del proyecto). Esto es útil para las bibliotecas de clases (ensamblados .dll), lo que significa que los usuarios de su .dll obtienen documentación de Intellisense para su API allí mismo en Visual Studio.
Le recomiendo que obtenga una copia del complemento GhostDoc Visual Studio. Hace que la documentación sea mucho más fácil.
GhostDoc
: el complemento más estúpido que he visto. Genera documentación. Ahora pausa un segundo para pensarlo. Desea que su código sea más comprensible, por lo que utiliza una herramienta que genera documentación basada únicamente en el nombre del método y los tipos de argumentos. ¿Tiene sentido para usted? El usuario puede ver el nombre y los tipos de argumentos, agregar comentarios a DateTime date
- La fecha realmente no ayuda.
Suprimir advertencias para comentarios XML
(No es mi trabajo, pero lo encontré útil, así que he incluido el artículo y el enlace)
http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/
Aquí le mostraré cómo puede suprimir las advertencias para comentarios XML después de una compilación de Visual Studio.
Antecedentes
Si ha marcado la marca "Archivo de documentación XML" en la configuración del proyecto de Visual Studio, se crea un archivo XML que contiene todos los comentarios XML. Además, recibirá muchas advertencias también en los archivos generados por el diseñador, debido a los comentarios XML faltantes o incorrectos. Si bien a veces las advertencias nos ayudan a mejorar y estabilizar nuestro código, obtener cientos de advertencias de comentarios XML es simplemente una molestia. Advertencias
Falta el comentario XML para el tipo o miembro visible públicamente ... comentario XML en ... tiene una etiqueta param para '...', pero no hay ningún parámetro con ese nombre El parámetro '...' no tiene una etiqueta param coincidente en el comentario XML para '...' (pero otros parámetros hacen) Solución
Puede suprimir todas las advertencias en Visual Studio.
Haga clic con el botón derecho en el proyecto de Visual Studio / Propiedades / pestaña Crear
Inserte los siguientes números de advertencia en "Suprimir advertencias": 1591,1572,1571,1573,1587,1570
Hay otra forma de suprimir estos mensajes sin la necesidad de ningún cambio de código o bloques de pragma. Uso de Visual Studio: vaya a las propiedades del proyecto> Compilación> Errores y advertencias> Suprimir advertencias: agregue 1591 a la lista de códigos de advertencia.
#pragma warning disable
todas partes, lo cual es molesto.
Insertar un comentario XML. ;-)
/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
get;
set;
}
Esto puede parecer una broma a primera vista, pero en realidad puede ser útil. Para mí resultó útil pensar qué métodos hacen incluso para los métodos privados (a menos que sea realmente trivial, por supuesto).
Esto se debe a que se ha especificado un archivo de documentación XML en las Propiedades del proyecto y Su Método / Clase es público y carece de documentación.
Tu también puedes :
Haga clic derecho en su proyecto -> Propiedades -> pestaña 'Construir' -> desmarque Archivo de documentación XML.
El resumen de la documentación XML es así:
/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..
Quería agregar algo a las respuestas enumeradas aquí:
Como señaló Isak, la documentación XML es útil para las bibliotecas de clases, ya que proporciona inteligencia a cualquier consumidor dentro de Visual Studio. Por lo tanto, una solución fácil y correcta es simplemente desactivar la documentación para cualquier proyecto de nivel superior (como UI, etc.), que no se implementará fuera de su propio proyecto.
Además, quería señalar que la advertencia solo se expresa en miembros visibles públicamente . Entonces, si configura su biblioteca de clases para exponer solo lo que necesita, puede sobrevivir sin documentar private
y internal
miembros.
Sé que este es un hilo muy antiguo, pero es la primera respuesta en Google, así que pensé agregar esta información:
este comportamiento solo ocurre cuando el nivel de advertencia se establece en 4 en "Propiedades del proyecto" -> "Compilar" . A menos que realmente necesite tanta información, puede configurarla en 3 y eliminará estas advertencias. Por supuesto, cambiar el nivel de advertencia afecta más que solo los comentarios, así que consulte la documentación si no está seguro de lo que se perderá:
https://msdn.microsoft.com/en-us/library/thxezb7y.aspx
En su solución, una vez que marque la opción para generar un archivo de documento XML, comenzará a verificar a sus miembros públicos, por tener el XMLDoc, si no lo hacen, recibirá una advertencia por cada elemento. si realmente no desea liberar su DLL, y tampoco necesita documentación, vaya a la sección de solución, compilación y desactívela, de lo contrario si lo necesita, complételos y si no hay importancia propiedades y campos, simplemente superólelos con instrucciones precompiladoras
#pragma warning disable 1591
, también puede restaurar la advertencia:
#pragma warning restore 1591
uso de pragma: en cualquier lugar del código antes del lugar donde recibe la advertencia del compilador para ... (para el archivo, póngalo en el encabezado y no necesita habilitarlo nuevamente, para el ajuste de una sola clase alrededor de una clase o para el ajuste del método un método, o ... no necesita envolverlo, puede llamarlo y restaurarlo casualmente (comenzar al principio del archivo y finalizar dentro de un método)), escriba este código:
#pragma warning disable 1591
y en caso de que necesite restaurarlo, use:
#pragma warning restore 1591
Aquí un ejemplo:
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; }
}
}
Tenga en cuenta que la directiva pragma comienza al comienzo de la línea
Establecer el nivel de advertencia en 2 suprime estos mensajes. No sé si es la mejor solución, ya que también suprime advertencias útiles.
La respuesta de Jon Skeet funciona muy bien cuando construyes con VisualStudio. Sin embargo, si está construyendo el sln a través de la línea de comando (en mi caso fue a través de Ant), entonces puede encontrar que msbuild ignora las solicitudes de supresión de sln.
Agregar esto a la línea de comando msbuild resolvió el problema para mí:
/p:NoWarn=1591
Archivo > Editar > Ver proyecto (clic)
Parte inferior del arco desplegable (haga clic en Abrir / Trabajo actual > Propiedades ), abrió la página de propiedades del proyecto en "Compilar" en "Salida". Casilla de verificación "Desmarcar" documentación XML .
Reconstrucción y sin advertencias.
Debe agregar /// Comentario para el miembro para el que se muestra la advertencia.
ver abajo código
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}
Muestra un comentario XML de advertencia que falta para el tipo o miembro visible públicamente '.EventLogger ()'
Agregué un comentario para el miembro y desapareció la advertencia.
///<Summary>
/// To write a log <Anycomment as per your code>
///</Summary>
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}