Я получаю это предупреждение: "Отсутствует комментарий 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 assemblylies), что означает, что пользователи вашего .dll получают документацию intellisense для вашего API прямо в визуальной студии.
Я рекомендую вам получить копию GhostDoc Visual Studio AddIn.. Делает документацию намного проще.
Подавить предупреждения для комментариев 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
Вставить комментарий XML.; -)
/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
get;
set;
}
Это может выглядеть как шутка с первого взгляда, но это может быть полезно. Для меня оказалось полезным подумать о том, какие методы делают даже для частных методов (если не очень тривиально, конечно).
Существует еще один способ подавления этих сообщений без необходимости изменения кода или блоков прагмы. Использование Visual Studio - Перейдите в свойства проекта> "Сборка"> "Ошибки и предупреждения"> "Подавить предупреждения" - добавьте 1591 к списку кодов предупреждений.
Это связано с тем, что в ваших свойствах проекта был указан файл документации XML, а ваш метод/класс является общедоступным и не содержит документации.
Вы можете:
Щелкните правой кнопкой мыши на своем проекте → Свойства → вкладка "Создать" → снимите флажок Файл документации XML.
Резюме документации XML выглядит следующим образом:
/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..
Я хотел добавить что-то к приведенным здесь ответам:
Как отметил Исак, XML-документация полезна для библиотек классов, поскольку она предоставляет intellisense любому пользователю в 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; }
}
}
Обратите внимание, что директива прагмы начинается в начале строки
#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
Установка уровня предупреждения на 2 подавляет эти сообщения. Не знаю, является ли это лучшим решением, так как оно также подавляет полезные предупреждения.
Файл > Изменить > Просмотреть проект (нажмите)
Внизу ниспадающего лука (нажмите Открыть/Текущая работа > Свойства), открыла страницу свойств проекта в разделе "Сборка" в разделе "Вывод". "Снимите флажок" Документация 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);
}
Ответ Jon Skeet отлично подходит для тех случаев, когда вы строите с помощью VisualStudio. Однако, если вы собираете sln через командную строку (в моем случае это была Ant), вы можете обнаружить, что msbuild игнорирует запросы подавления sln.
Добавление этого в командную строку msbuild решило проблему для меня:
/p:NoWarn=1591
Для отдельного встроенного комментария, поддерживающего стандарт XML:
///<summary>Form One</summary>
// etc...
Я получил это сообщение после прикрепления атрибута к методу
[webMethod]
public void DoSomething()
{
}
Но правильным было это:
[webMethod()] // Note the Parentheses
public void DoSomething()
{
}