如何在构造函数中读取来自 属性 的 xml 评论?
how to read xml comment from Property in constructor?
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>
见或另见 link
它创建一个 link 到 属性,以便可以导航到它。但这不是我想要的。
/// <param name="i_a"><see cref="A"/></param>
/// <param name="i_b"><see cref="B"/></param>
我的目标
我想在 class 的构造函数中查看参数的文档,而不需要重复代码注释。
var test = new MyClass() // start entering the parameters I want to see the documentation of each parameter.
有可能吗?
这是可能的。 inheritdoc
应该可以在任何地方使用。 inheritdoc
:
的解决方案中有两个问题
- 属性
select="summary"
也选择 标签本身。并且它相对于当前 inheritdoc
位置搜索此标签。在您的例子中,它搜索 param/summary。请参阅我的工具的文档 VSdocman at 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;
}
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>
见或另见 link
它创建一个 link 到 属性,以便可以导航到它。但这不是我想要的。
/// <param name="i_a"><see cref="A"/></param>
/// <param name="i_b"><see cref="B"/></param>
我的目标
我想在 class 的构造函数中查看参数的文档,而不需要重复代码注释。
var test = new MyClass() // start entering the parameters I want to see the documentation of each parameter.
有可能吗?
这是可能的。 inheritdoc
应该可以在任何地方使用。 inheritdoc
:
- 属性
select="summary"
也选择标签本身。并且它相对于当前 inheritdoc
位置搜索此标签。在您的例子中,它搜索 param/summary。请参阅我的工具的文档 VSdocman at 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;
}