如何在C# XML文档注释的<list>标签内使用<inheritdoc>标签?
问题原因
这是IDE内置的XML注释渲染引擎的已知限制:默认配置下<inheritdoc>标签的引用解析逻辑未适配列表嵌套场景,放在<list>的子节点(<listheader>、<item>的<term>/<description>等)内时无法正常拉取目标成员的注释内容。
可行解决方案
最兼容的解决方式是给<inheritdoc>标签明确指定要拉取的目标节点路径,触发引擎的解析逻辑,写法如下:
/// <remarks> /// <b>List of methods below</b> /// <list type="table"> /// <listheader> /// <term> /// <see cref="MyMethod()"/> /// </term> /// <description> /// <!-- 增加path属性明确指定拉取MyMethod的summary节点内容 --> /// <inheritdoc cref="MyMethod()" path="summary/node()" /> /// </description> /// </listheader> /// </list> /// </remarks> public class MyClass { /// <summary> /// Description of MyMethod() /// </summary> public void MyMethod() { // Do something } }
- 其中
path="summary/node()"表示拉取目标成员summary标签下的所有内容,如果你要拉取其他节点(比如remarks),把summary替换为对应标签名即可。 - 该写法兼容Visual Studio 2019及以上版本、Rider等主流IDE,也不会影响XML文档文件的生成效果。
内容的提问来源于stack exchange,提问作者Wapelo
相关产品推荐
相关产品推荐

