NDoc有一个XML元素inheritdoc,允许您继承父类(或实现的接口)的成员文档。然而,Visual Studio(即C#编译器)不理解此标记,并抱怨文档不完整或不存在。因此,StyleCop和一些其他工具也是如此。是否有替代方法?如何保持文档完整,但又不重复XML描述?
NDoc有一个XML元素inheritdoc,允许您继承父类(或实现的接口)的成员文档。然而,Visual Studio(即C#编译器)不理解此标记,并抱怨文档不完整或不存在。因此,StyleCop和一些其他工具也是如此。是否有替代方法?如何保持文档完整,但又不重复XML描述?
我有一个更好的答案:FiXml。
使用GhostDoc克隆注释确实是一种可行的方法,但它有很大的缺点,例如:
FiXml的简短描述:它是由C# / Visual Basic .Net生成的XML文档的后处理器。它被实现为MSBuild任务,因此很容易集成到任何项目中。它解决了这些语言中写XML文档时的一些令人讨厌的问题:
<see cref="Instance" />
属性获取唯一实例。”,或者甚至是“初始化<CurrentType>
类的新实例。”为了解决上述问题,提供了以下附加的XML标记:
<inheritdoc />, <inherited />
标签<see cref="..." copy="..." />
属性在<see/>
标记中。最后,在Sandcastle中有一个<inheritdoc>
标签,使用它肯定比复制XML注释更好,但与FiXml相比,它有一些缺点:
.xml
文件。 但是这些文件被许多工具使用,包括.NET Reflector和Visual Studio .NET中的类浏览器IntelliSense。因此,如果仅使用Sandcastle,则在那里看不到继承的文档。<see ... copy="true" />
。有关详细信息,请参见Sandcastle的<inheritdoc>
说明。
一种选择是使用GhostDoc——Visual Studio 的插件,可以自动为您生成注释。当然,这会重复XML描述,这也是您要避免的部分——但至少它会自动完成。
如果对于正在被继承或覆盖接口方法的方法完全省略文档会发生什么?我猜这取决于您如何配置NDoc,但在MSDN文档中似乎只是自然地继承了文档,并且快速检查表明 VS不会因您未为继承的方法提供文档而抱怨。值得一试。