使用 cref 继承文档特定异常

问题描述 投票:0回答:1

如何使用

<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']" />

c# sandcastle
1个回答
0
投票

根据文档,在没有Sandcastle的情况下使用inheritdoc的语法将是:

<inheritdoc cref="Method2(int)" path="/exception[@cref='CustomException']"/>

Sandcastle 文档 表明

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
的属性...

© www.soinside.com 2019 - 2024. All rights reserved.