Я получаю это предупреждение: «Отсутствует комментарий XML для публично видимого типа или члена».
Как это решить?
Я получаю это предупреждение: «Отсутствует комментарий XML для публично видимого типа или члена».
Как это решить?
Ответы:
5 вариантов:
#pragma warning disable 1591
для отключения предупреждения только для некоторых битов кода (и #pragma warning restore 1591
после)Добавьте XML-комментарии к публично видимым типам и членам, конечно же :)
///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
return 42;
}
Вам нужны эти <summary>
комментарии типа для всех участников - они также отображаются во всплывающем меню intellisense.
Причина вы получите это предупреждение, потому что вы настроили свой проект для вывода документации файла XML (в настройках проекта). Это полезно для библиотек классов (сборок .dll), что означает, что пользователи вашего .dll получают документацию intellisense для вашего API прямо в Visual Studio.
Я рекомендую вам получить копию надстройки GhostDoc Visual Studio. Упрощает документирование.
GhostDoc
- самый глупый аддон, который я когда-либо видел. Генерирует документацию. Теперь остановитесь на секунду, чтобы подумать об этом. Вы хотите, чтобы ваш код был более понятным, поэтому вы используете инструмент, который генерирует документацию исключительно на основе имени метода и типов аргументов. Имеет ли это для вас смысл? Пользователь может увидеть имя и типы аргументов, добавить комментарий к DateTime date
- Дата действительно не помогает.
Подавить предупреждения для комментариев XML
(не моя работа, но я нашел ее полезной, поэтому я включил статью и ссылку)
http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/
Здесь я покажу вам, как вы можете подавить предупреждения для комментариев XML после сборки Visual Studio.
Фон
Если вы отметили отметку «Файл документации XML» в настройках проекта Visual Studio, будет создан файл XML, содержащий все комментарии XML. Кроме того, вы получите много предупреждений в файлах, созданных дизайнером, из-за отсутствующих или неправильных комментариев XML. Хотя иногда предупреждения помогают нам улучшать и стабилизировать наш код, получение сотен предупреждений о комментариях XML - это просто боль. Предупреждения
Отсутствует комментарий XML для публично видимого типа или члена… Комментарий XML для… имеет тег param для «…», но нет параметра с таким именем. Параметр «…» не имеет соответствующего тега param в комментарии XML для «…» (но другие параметры делают) решение
Вы можете подавить каждое предупреждение в Visual Studio.
Щелкните правой кнопкой мыши проект Visual Studio / Свойства / Вкладка «Сборка»
Вставьте следующие номера предупреждений в «Подавить предупреждения»: 1591,1572,1571,1573,1587,1570
Есть еще один способ подавления этих сообщений без необходимости изменения кода или блоков прагмы. Использование Visual Studio - перейдите в свойства проекта> «Сборка»> «Ошибки и предупреждения»> «Подавить предупреждения» - добавьте 1591 к списку кодов предупреждений.
#pragma warning disable
повсюду, что просто раздражает.
Вставьте комментарий XML. ;-)
/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
get;
set;
}
На первый взгляд это может показаться шуткой, но на самом деле это может быть полезно. Для меня оказалось полезным подумать о том, что делают методы, даже для частных методов (если, конечно, это не тривиально).
Это связано с тем, что в свойствах вашего проекта указан файл документации XML, а ваш метод / класс является общедоступным и не имеет документации.
Вы также можете :
Щелкните правой кнопкой мыши по вашему проекту -> Свойства -> вкладка «Сборка» -> снимите флажок «Файл документации XML».
Резюме XML-документации выглядит следующим образом:
/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..
Я хотел бы добавить что-то к ответам, перечисленным здесь:
Как указал Исак, документация XML полезна для библиотек классов, так как она обеспечивает интеллектуальный смысл для любого потребителя в Visual Studio. Следовательно, простое и правильное решение - просто отключить документацию для любого проекта верхнего уровня (такого как пользовательский интерфейс и т. Д.), Который не будет реализован вне собственного проекта.
Кроме того, я хотел бы отметить, что предупреждение выражается только для публично видимых участников. Таким образом, если вы настроите свою библиотеку классов так, чтобы она отображала только то, что ей нужно, вы можете обойтись без документирования private
и internal
членов.
Я знаю, что это действительно старая тема, но это первый ответ в Google, поэтому я решил добавить эту информацию:
это происходит только в том случае, если для уровня предупреждения установлено значение 4 в разделе «Свойства проекта» -> «Построить» , Если вам действительно не нужно столько информации, вы можете установить ее на 3, и вы избавитесь от этих предупреждений. Конечно, изменение уровня предупреждения влияет не только на комментарии, поэтому, если вы не уверены в том, чего вам не хватает, обратитесь к документации:
https://msdn.microsoft.com/en-us/library/thxezb7y.aspx
В вашем решении, после того, как вы отметите опцию создания файла XML-документа, оно начнет проверять ваших открытых членов на наличие XMLDoc, а если нет, вы получите предупреждение для каждого элемента. если вы действительно не хотите выпускать свою DLL, а также вам не нужна документация, перейдите к своему решению, соберите раздел и отключите его, иначе, если вам это нужно, заполните их, и если они не важны Свойства и поля, просто превзойти их с помощью инструкции перед компилятором,
#pragma warning disable 1591
вы также можете восстановить предупреждение:
#pragma warning restore 1591
использование прагмы: в любом месте кода перед тем местом, где вы получаете предупреждение компилятора для ... (для файла, поместите его в заголовок, и вам не нужно включать его снова, для переноса одного класса вокруг класса или для обхода метода вокруг метод, или ... вам не нужно оборачивать его, вы можете вызвать его и восстановить его случайно (начало в начале файла и конец внутри метода)), напишите этот код:
#pragma warning disable 1591
и если вам нужно восстановить его, используйте:
#pragma warning restore 1591
Вот пример:
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; }
}
}
Обратите внимание, что директива прагмы начинается в начале строки
Установка уровня предупреждения на 2 подавляет эти сообщения. Не знаю, является ли это лучшим решением, поскольку оно также подавляет полезные предупреждения.
Ответ Джона Скита отлично подходит для тех случаев, когда вы строите с помощью VisualStudio. Однако, если вы собираете sln через командную строку (в моем случае это была Ant), вы можете обнаружить, что msbuild игнорирует запросы подавления sln.
Добавление этого в командную строку msbuild решило проблему для меня:
/p:NoWarn=1591
Файл > Правка > Просмотр проекта (нажмите)
Внизу раскрывающегося лука (нажмите « Открыть» / «Текущая работа» > « Свойства» ), открылась страница свойств проекта в «Build» в «Output». Снимите флажок « Документация XML» .
Восстановите и никаких предупреждений.
Вам необходимо добавить /// Комментарий для участника, для которого отображается предупреждение.
см. ниже код
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}
Отображается предупреждение «Отсутствует комментарий XML» для публично видимого типа или члена «.EventLogger ()».
Я добавил комментарий для участника и предупреждение исчезло.
///<Summary>
/// To write a log <Anycomment as per your code>
///</Summary>
public EventLogger()
{
LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}