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
解决方案存在两个问题:
- 属性
select="summary"
还选择标记本身。它会相对于当前 inheritdoc
位置搜索该标记。在您的情况下,它会搜索参数/摘要。请参阅我的工具的文档 VSdocman在https://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/