从C#中的接口继承XML注释

时间:2010-09-22 19:46:30

标签: c# .net visual-studio-2010

我想知道是否有人知道如何将接口xml注释链接到实现。问题是我希望基本注释首先来自我的界面。例如:

interface myinterface {

       /// <summary>
       /// Does something.
       /// </summary>
       void method1(string foo);

}

然后实现是:

public class myclass : myinterface {


       public void method1(string foo) {
             //do something...
       }
}

现在,如果我在实例化对象后用鼠标悬停在方法上:

myclass foo = new myclass();
foo.method1("do something");

如何在悬停弹出窗口中显示评论?有什么方法可以将接口注释链接到实现吗?我知道Java中有一种方法,但无法找到C#的解决方案。

由于

6 个答案:

答案 0 :(得分:18)

链接XML注释是不可能的,但您可以使用GhostDoc之类的工具将XML注释从您的Interface / Baseclass复制到实现/派生类。

答案 1 :(得分:8)

XMLDoc定义了一个标记<include />,用于包含自Visual Studio 2003以来一直存在的另一个文件的注释。最大的警告是引用的文件应该是仅包含XMLDoc文档的文件,而不是另一个源文件。

有关详细信息,请参阅the MSDN page

答案 2 :(得分:7)

如果您使用GhostDoc,那么将文档从接口“传输”到实现代码会有很大帮助。

答案 3 :(得分:0)

http://blog.x-tensive.com/2008/02/fixml.html

这是一个后处理器,它有一些缺少原始文档系统的附加选项。

来自网站:

摘要:

FiXml是C#\ Visual Basic.Net生成的XML文档的后处理器。它解决了与使用以下语言编写XML文档相关的一些最烦人的情况: - 不支持从基类或接口继承文档。即任何被覆盖的成员的文档都应该从头开始编写,尽管通常至少要继承它的一部分是非常可取的。 - 不支持插入常用的文档模板,例如“此类型是单例 - 使用其属性获取它的唯一实例。”,甚至“初始化类的新实例。”

答案 4 :(得分:0)

我构建了一个命令行工具来对XML文档文件进行后处理,增加了对&lt; inheritdoc /&gt;的支持。标签

虽然它对源代码中的Intellisense没有帮助,但它确实允许修改后的XML文档文件包含在NuGet包中,因此可以在引用的NuGet包中使用Intellisense。

有关详细信息,请参阅www.inheritdoc.io(可用免费版本)。

答案 5 :(得分:0)

看起来像<inheritdoc/>的人很快就会获得本机支持。

请参见https://github.com/dotnet/csharplang/issues/313