c# - tutorial - Falta un comentario XML para un miembro o tipo visible públicamente
visual studio code (15)
5 opciones:
- Rellene los comentarios de la documentación (excelente, pero requiere mucho tiempo)
- Desactivar la generación de comentarios (en las propiedades del proyecto)
- Deshabilite la advertencia en las propiedades del proyecto (en ''Propiedades del proyecto'' vaya a Propiedades del proyecto -> Generar> "Errores y advertencias" (sección), Suprimir advertencias (cuadro de texto), agregue 1591 (lista separada por comas))
- Use
#pragma warning disable 1591
para deshabilitar la advertencia solo para algunos bits de código (y#pragma warning restore 1591
después) - Ignora las advertencias (mala idea: te perderás las nuevas advertencias "reales")
Me aparece esta advertencia: "Falta un comentario XML para un tipo o miembro visible públicamente".
¿Cómo resolver esto?
Agregue comentarios XML a los tipos visibles públicamente y a los miembros del curso :)
///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
return 42;
}
Necesita estos comentarios de tipo <summary>
en todos los miembros, que también aparecen en el menú emergente intellisense.
La razón por la que recibe esta advertencia es porque configuró su proyecto para que genere un archivo xml de documentación (en la configuración del proyecto). Esto es útil para las bibliotecas de clases (ensamblajes .dll), lo que significa que los usuarios de su .dll están obteniendo documentación inteligente para su API allí mismo en Visual Studio.
Te recomiendo que obtengas una copia del GhostDoc Visual Studio .. Hace que la documentación sea mucho más fácil.
Debe agregar /// Comentario para el miembro para el que se muestra la advertencia.
ver código abajo
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}
Muestra una advertencia. Falta un comentario XML para el tipo visible públicamente o miembro ''.EventLogger ()''
Agregué un comentario para el miembro y la advertencia desapareció.
///<Summary>
/// To write a log <Anycomment as per your code>
///</Summary>
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}
En su solución, una vez que marque la opción para generar un archivo de documento XML, comience a revisar sus miembros públicos, para tener el XMLDoc, si no lo hacen, recibirá una advertencia por cada elemento. Si realmente no quiere lanzar su DLL, y tampoco necesita documentación, vaya a su solución, compile la sección y desactívela, de lo contrario, si la necesita, entonces llénela, y si no son importantes propiedades y campos, solo supérelos con la instrucción de pre-compilador #pragma warning disable 1591
también puede restaurar la advertencia: #pragma warning restore 1591
uso de pragma: en cualquier lugar del código anterior al lugar en el que recibe la advertencia del compilador para ... (para el archivo, póngalo en el encabezado y no necesita habilitarlo de nuevo, para una clase que se ajuste a una clase o para un método completo) un método, o ... tampoco es necesario envolverlo, puede llamarlo y restaurarlo de forma casual (comience en el inicio del archivo y finalice 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 principio 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 las advertencias útiles.
Esto se debe a que se ha especificado un archivo de documentación XML en sus Propiedades del proyecto y su Método / Clase es público y carece de documentación.
Tu también puedes :
- Deshabilitar la documentación XML:
Haga clic con el botón derecho en su Proyecto -> Propiedades -> pestaña ''Crear'' -> desmarque el Archivo de documentación XML.
- Siéntate y escribe la documentación tú mismo!
El resumen de la documentación XML es así:
/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..
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 los métodos privados (a menos que sea realmente trivial, por supuesto).
La respuesta de Jon Skeet funciona muy bien cuando estás construyendo con VisualStudio. Sin embargo, si está creando el sln a través de la línea de comandos (en mi caso, fue a través de Ant), es posible que msbuild ignore las solicitudes de supresión del sln.
Agregar esto a la línea de comandos msbuild solucionó el problema para mí:
/p:NoWarn=1591
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 de 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 los miembros visibles públicamente . Por lo tanto, si configura su biblioteca de clases para que solo exponga lo que necesita, puede hacerlo sin documentar internal
miembros private
e internal
.
Recibí ese mensaje después de adjuntar un atributo a un método
[webMethod]
public void DoSomething()
{
}
Pero la forma correcta fue esta:
[webMethod()] // Note the Parentheses
public void DoSomething()
{
}
Sé que este es un hilo muy antiguo, pero es la primera respuesta en Google, así que pensé en agregar esta información:
Este comportamiento solo ocurre cuando el nivel de advertencia se establece en 4 en "Propiedades del proyecto" -> "Generar". A menos que realmente necesite tanta información, puede establecerla en 3 y deshacerse de 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
Archivo > Editar > Ver proyecto (clic)
En la parte inferior del arco desplegable (haga clic en Abrir / Trabajo actual > Propiedades ), se abrió la página de propiedades del proyecto en "Crear" en "Salida". "Desmarque" la casilla de verificación Documentación XML .
Reconstruir y sin advertencias.
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 de los comentarios XML después de una compilación de Visual Studio.
Fondo
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. Aunque a veces las advertencias nos ayudan a mejorar y estabilizar nuestro código, obtener cientos de advertencias de comentarios XML es solo una molestia. Advertencias
Falta un comentario XML para un tipo o miembro visible públicamente ... El 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
Puedes suprimir todas las advertencias en Visual Studio.
Haga clic derecho en el proyecto de Visual Studio / Propiedades / pestaña Generar
Inserte los siguientes números de advertencia en "Suprimir advertencias": 1591,1572,1571,1573,1587,1570
#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