对公开可见的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文档。
你可以:
- 禁用XML文档:
右键单击您的项目 – >属性 – >“生成”选项卡 – >取消选中XML文档文件。
- 请自己坐下来写下文件!
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等)的文档,这些文档不会在自己的项目之外实现。
另外我想指出的是,这个警告只对公众可见的成员表示。 所以,如果你设置你的类库只公开它需要的东西,你可以不用loggingprivate
和internal
成员。
#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() { }