对公开可见的types或成员缺lessXML注释

我得到这个警告:“缺less公开可见types或成员的XML注释”。

如何解决这个问题?

5个选项:

  • 填写文档注释(很好但很耗时)
  • closures评论生成(在项目属性中)
  • 禁用项目属性中的警告(在'项目属性'转到项目属性 – >生成>“错误和警告”(部分),取消警告(文本框),添加1591(逗号分隔列表))
  • 使用#pragma warning disable 1591禁用警告只是一些代码(和#pragma warning restore 1591之后)
  • 忽略警告(坏主意 – 你会错过新的“真实”的警告)

将XML注释添加到公开可见的types和成员:)

 ///<Summary> /// Gets the answer ///</Summary> public int MyMethod() { return 42; } 

您需要在所有成员上input<summary>types的注释,这些注释也显示在intellisensepopup式菜单中。

您得到此警告的原因是因为您已将项目设置为输出文档xml文件(在项目设置中)。 这对于类库(.dll程序集)非常有用,这意味着.dll的用户在visual studio中正在为您的API获取智能感知文档。

我build议你自己找一份GhostDoc Visual Studio AddIn ..使logging更容易。

抑制XML注释的警告

(不是我的工作,但我发现它很有用,所以我已经包括文章和链接)

http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/

在这里,我将向您展示如何在Visual Studio构build之后抑制XML注释的警告。

背景

如果您在Visual Studio项目设置中选中了“XML文档文件”标记,则会创build一个包含所有XML注释的XML文件。 另外,由于丢失或错误的XML注释,您还会在devise器生成的文件中收到很多警告。 尽pipe有时候警告会帮助我们改进和稳定我们的代码,但获取数百条XML注释警告只是一个痛苦。 警告

缺less公共可见types或成员的 XML注释 XML注释…具有“…”的param标记,但没有该名称的参数参数'…'在XML注释中没有匹配的参数标记(…)其他参数呢)解决scheme

您可以禁止在Visual Studio中的每个警告。

  • 用鼠标右键单击Visual Studio项目/属性/生成选项卡

  • 在“取消警告”中插入以下警告编号:1591,1572,1571,1573,1587,1570

插入一个XML注释。 😉

 /// <summary> /// Describe your member here. /// </summary> public string Something { get; set; } 

乍看之下,这可能看起来像一个笑话,但它可能实际上是有用的。 对我来说,即使对于私人方法,除了真正微不足道的方法之外,对于什么方法也是有帮助的。

这是因为在您的项目属性中已经指定了XML文档文件,而您的方法/类是公开的并且缺less文档。
你可以:

  1. 禁用XML文档:

    右键单击您的项目 – >属性 – >“生成”选项卡 – >取消选中XML文档文件。

  2. 请自己坐下来写下文件!

XML文档摘要如下所示:

 /// <summary> /// Description of the class/method/variable /// </summary> ..declaration goes here.. 

我知道这是一个非常古老的线程,但这是谷歌的第一个反应,所以我想我会添加这些信息:

只有在“项目属性” – >“生成”下将警告级别设置为4时,才会出现此行为。 除非你真的需要那么多的信息,否则你可以把它设置为3,你将摆脱这些警告。 当然,更改警告级别不仅会影响评论,所以如果您不确定将会丢失什么,请参阅文档:
https://msdn.microsoft.com/en-us/library/thxezb7y.aspx

我想添加一些东西到这里列出的答案:

正如Isak指出的那样,XML文档对于类库非常有用,因为它为Visual Studio中的所有用户提供了智能感知。 因此,简单而正确的解决scheme是简单地closures任何顶层项目(如UI等)的文档,这些文档不会在自己的项目之外实现。

另外我想指出的是,这个警告只对公众可见的成员表示。 所以,如果你设置你的类库只公开它需要的东西,你可以不用loggingprivateinternal成员。

 #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会禁止此消息。 不知道这是否是最好的解决scheme,因为它也会抑制有用的警告。

文件 > 编辑 > 查看项目 (单击)

下拉弓的底部(点击打开/当前工作 > 属性 ),在“输出”下的“生成”打开项目属性页面。 “取消选中” XML文档“checkbox。

重build并没有警告。

在你的解决scheme中,一旦你检查生成XML文档文件的选项,它就开始检查你的公共成员是否拥有XMLDoc,如果他们没有收到每个元素的警告。 如果你真的不想释放你的DLL,也不需要文件,那么去你的解决scheme,build立部分,并closures它,否则你需要它,所以填充它们,如果有不重要的属性和字段,只要用预编译指令#pragma warning disable 1591就可以了,还可以恢复警告: #pragma warning restore 1591

您需要为显示警告的成员添加///注释。

看下面的代码

 public EventLogger() { LogFile = string.Format("{0}{1}", LogFilePath, FileName); } 

它显示警告缺less公开可见的types或成员的XML注释'.EventLogger()'

我添加了对该成员的注释,并且警告消失了。

 ///<Summary> /// To write a log <Anycomment as per your code> ///</Summary> public EventLogger() { LogFile = string.Format("{0}{1}", LogFilePath, FileName); } 

在将属性附加到方法后,我得到了这个消息

 [webMethod] public void DoSomething() { } 

但正确的方法是:

 [webMethod()] // Note the Parentheses public void DoSomething() { }