我收到此警告:"缺少公开可见类型或成员的XML注释".
怎么解决这个?
5个选项:
填写文档注释(很棒,但很耗时)
关闭注释生成(在项目属性中)
禁用项目属性中的警告(在'项目属性'中转到项目属性 - >构建>"错误和警告"(部分),抑制警告(文本框),添加1591(逗号分隔列表))
使用#pragma warning disable 1591
禁用警告只是一些代码位(和#pragma warning restore 1591
事后)
忽略警告(坏主意 - 你会错过新的"真实"警告)
将XML注释添加到公开可见的类型和成员当然:)
////// Gets the answer /// public int MyMethod() { return 42; }
您需要
对所有成员进行这些类型注释 - 这些注释也会显示在intellisense弹出菜单中.
您收到此警告的原因是您将项目设置为输出文档xml文件(在项目设置中).这对于类库(.dll程序集)非常有用,这意味着.dll的用户可以在visual studio中获取API的intellisense文档.
我建议您自己获取GhostDoc Visual Studio AddIn 的副本.使文档更容易.
禁止XML注释的警告
(不是我的工作,但我发现它很有用所以我已经包含了文章和链接)
http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/
在这里,我将向您展示如何在Visual Studio构建后禁止XML注释的警告.
背景
如果已在Visual Studio项目设置中选中"XML文档文件"标记,则会创建包含所有XML注释的XML文件.此外,由于缺少或错误的XML注释,您还会在设计器生成的文件中收到很多警告.虽然有时警告可以帮助我们改进和稳定我们的代码,但是获取数百条XML注释警告只是一种痛苦.警告
缺少对公开可见类型或成员的 XML注释...对...的 XML注释具有'...'的参数标记,但没有该名称的参数参数'...'在XML注释中没有匹配的参数标记'...'(但是其他参数做)解决方案
您可以在Visual Studio中禁止每个警告.
右键单击Visual Studio项目/ Properties/Build选项卡
在"抑制警告"中插入以下警告编号:1591,1572,1571,1573,1587,1570
还有另一种方法可以抑制这些消息,而无需任何代码更改或编译指示块.使用Visual Studio - 转到项目属性>构建>错误和警告>抑制警告 - 将1591附加到警告代码列表.
插入XML注释.;-)
////// Describe your member here. /// public string Something { get; set; }
这看起来像是第一眼的笑话,但它实际上可能是有用的.对我来说,考虑一下甚至用于私人方法的方法也是有帮助的(当然,除非真的微不足道).
这是因为在您的项目属性中指定了XML文档文件,并且您的方法/类是公共的并且缺少文档.
你可以:
禁用XML文档:
右键单击您的项目 - >属性 - >'构建'选项卡 - >取消选中XML文档文件.
自己坐下来写文档吧!
XML文档摘要如下:
////// Description of the class/method/variable /// ..declaration goes here..
我想在此处列出的答案中添加一些内容:
正如Isak指出的那样,XML文档对类库非常有用,因为它为Visual Studio中的任何使用者提供了智能感知.因此,一个简单而正确的解决方案是简单地关闭任何顶级项目(例如UI等)的文档,这些项目不会在其自己的项目之外实现.
此外,我想指出警告仅对公开可见的成员表示.因此,如果您将类库设置为仅显示其所需的内容,则可以在没有文档private
和internal
成员的情况下完成.
我知道这是一个非常古老的线程,但它是对谷歌的第一反应,所以我想我要补充的信息,该位:
此行为仅在警告级别下的"项目属性"设置为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 ListLanguageBasedNames { get; set; } [Required] public string CountryId { get; set; } #pragma warning restore 1591 /// /// Some countries do not have neither a State, nor a Province /// public string StateOrProvinceId { get; set; } } }
请注意,pragma指令从行首开始