c# - 如何从构造函数中的Property读取xml注释?

标签 c# xml-comments

public class MyClass {
    

    /// <summary>
    ///   My awesome class
    /// </summary>
    /// <param name="i_a">This is test of A</param>
    /// <param name="i_b">This is test of B</param>
    public MyClass(string i_a, string i_b){
      A = i_a;
      B = i_b;
    }

    /// <summary> This is test of A </summary>
    public string A {get;}

    /// <summary> This is test of B </summary>
    public string B {get;}

}

我想在param中添加与属性中相同的信息,当然,不要重复。我尝试过:

继承文档

创建实例时不显示文档。

/// <param name="i_a"><inheritdoc cref="A" select="summary" /></param>
/// <param name="i_b"><inheritdoc cref="B" select="summary" /></param>

查看或另请参阅链接

它创建一个指向该属性的链接,以便可以导航到该属性。但这不是我想要的。

/// <param name="i_a"><see cref="A"/></param>
/// <param name="i_b"><see cref="B"/></param>

我的目标

我想在类的构造函数期间查看参数的文档,就像不重复代码注释一样。

var test = new MyClass() // start entering the parameters I want to see the documentation of each parameter.

可能吗?

最佳答案

这是可能的。 inheritdoc 应该可以在任何地方工作。您的 inheritdoc 解决方案存在两个问题:

  1. 属性 select="summary" 还选择 标记本身。它会相对于当前 inheritdoc 位置搜索该标记。在您的情况下,它会搜索参数/摘要。请参阅我的工具的文档 VSdocmanhttps://www.helixoft.com/files/vsdocman/help/inheritdoc.html

所以正确的值应该是“/summary/node()”

  • 我惊讶地发现 inheritdoc标签现在使用 path 参数而不是旧的 select。似乎在某些上下文中 VS Intellisense 支持这两个属性,而在某些上下文(包括 param 标记)中,仅识别 path
  • 所以你的评论应该是:

    /// <summary>
    ///   My awesome class.
    ///   Just a proof that old 'select' attribute works here.
    ///   <inheritdoc cref="A" select="/summary/node()" />
    /// </summary>
    /// <param name="i_a"><inheritdoc cref="A" path="/summary/node()" /></param>
    /// <param name="i_b"><inheritdoc cref="B" path="/summary/node()" /></param>
    public MyClass(string i_a, string i_b)
    {
        A = i_a;
        B = i_b;
    }
    

    关于c# - 如何从构造函数中的Property读取xml注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71766149/

    相关文章:

    c# - HttpWeb响应

    c# - 从一个 .Net Core 项目创建 2 个独立的 exe?

    c# - VS2010中的评论模板

    c# - 代码注释 : Do you put your code comments on Interfaces or on Concrete classes, 或两者?

    c# - XML 注释 - MSDN 文档 "Note"部分——如何复制它?

    c# - 构建可扩展的 ASP.NET MVC Web 应用程序

    c# - IE9 工具栏按钮的自定义图标

    c# - 从 NTFS-MFT 引用号获取文件信息

    java - JDom 如何注释现有行

    asp.net - Web.config:在xml属性中添加注释