如何使用
<inheritdoc/>
从另一个方法继承特定异常。是否可以做这样的事情:
/// <summary>
/// Summary
/// </summary>
/// <inheritdoc cref="Method2(int)" select="exception[@cref='CustomException']" />
public int Method1()
{
return Method2(1);
}
/// <summary>
/// Summary...
/// </summary>
/// <exception cref="ArgumentException">
/// ArgumentException...
/// </exception>
/// <exception cref="CustomException">
/// CustomException...
/// </exception>
public int Method2(int count)
{
// do something
}
当我构建文档并打开它时,方法1也不例外。目前,我的解决方法是将
id="CustomException"
添加到 Method2 并使用 <inheritdoc cref="Method2(int)" select="exception[@id='CustomException']" />
根据文档,在没有Sandcastle的情况下使用inheritdoc的语法将是:
<inheritdoc cref="Method2(int)" path="/exception[@cref='CustomException']"/>
select
属性已于 2019 年 11 月被弃用(我知道这个问题是在那之前出现的,但这就是当前的情况)。应使用等效的 path
属性来代替:
<inheritdoc cref="Method2(int)" path="exception[@cref='CustomException']"/>
使用与不使用 Sandcastle 的主要区别在于
path
属性的 xpath 值以正斜杠开头。
我自己没有使用Sandcastle的经验,但我自己搜索问题时遇到了这个问题:似乎不完全支持
cref
属性作为inheritdoc path
属性的xpath表达式中的选择器。使用 path="/exception"
为我继承了所有异常文档,但是当使用 path="/exception[@cref='CustomException']"
时,不会继承任何异常文档,而当使用 path="/exception[not(@cref='ArgumentException')]"
否定它时,所有异常文档都会被继承。我无法在任何地方找到有关此行为的任何信息;可能是因为 cref
也是 inheritdoc
的属性...