过滤继承的参数注释的内容

时间:2012-03-02 10:21:09

标签: xml-documentation shfb inheritdoc

我有这样的评论:

/// <summary>some summary</summary>
/// <param name="a">
///     <para id="0">Comment 0</para>
///     <para id="1">Comment 1</para>
///     <para id="2">Comment 2</para>
/// </param>
/// <param name="b">
///     <para id="1">Comment 3</para>
///     <para id="0">Comment 4</para>
/// </param>
void InterfaceMethod(int a, int b);

对于实施方法,我希望使用相同的文档,但不使用id="0"的{​​{1}}段,使用inheritdoc。 如何创作inheritdoc元素?

在此上下文中不常见地使用id属性将增加不与文档中出现的段落顺序相关联的灵活性。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,但看起来很麻烦。

/// <summary><inheritdoc/></summary>
/// <param name="a"><inheritdoc select="node()[parent::node()[@name='a'] and @id&gt;0]"/></param>
/// <param name="b"><inheritdoc select="node()[parent::node()[@name='b'] and @id&gt;0]"/></param>
public void InterfaceMethod(int a, int b) { }

作为it is not possible to use XPath expressions as a filter,必须重复param个元素。 表达式@id>0>需要转义)现在只选择预期的段落。

但是其他标记怎么样? 嵌套的inheritdoc元素将选择所有 param个节点的内容,因此我们必须在父级的name属性上添加条件。

最后,inheritdoc标记中的summary标记会复制摘要。如果我们在根级别放置inheritdoc,则会再次选择param,如here所述。