在xml-comment的cref部分构造泛型类型

Sno*_*ear 6 c# generics xml-comments

我有这样的通用异常类:

public class DuplicateException<TEntity> : Exception
{
    public TEntity Entity { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有非泛型方法可能会抛出构造的泛型异常:

void Save()
{
    throw new DuplicateException<SomeEntity>();
}
Run Code Online (Sandbox Code Playgroud)

这个方法可能抛出这个通用异常,但只抛出这个构造类型DuplicateException<SomeEntity>,它不能抛出这个异常而不是其他类型参数SomeEntity.

现在我想在xml-comment中为Save方法指定这个事实.本文稍微介绍了如何使用泛型异常来评论方法,我尝试了以下两种方法:

1)通过VS中的自动完成默认插入:

/// <exception cref="DuplicateException{TEntity}" />
Run Code Online (Sandbox Code Playgroud)

2)替换TEntitySomeEntity

/// <exception cref="DuplicateException{SomeEntity}" />
Run Code Online (Sandbox Code Playgroud)

但是在这两种情况下,输出XML仍然声明这个方法可能抛出一般的非构造类型,完全没有提到SomeEntity:

<exception cref="T:MyNameSpace.DuplicateException`1" />
Run Code Online (Sandbox Code Playgroud)

Dav*_*son 3

cref 属性的用途是链接到类型的文档。但没有具体泛型类型的文档,因此生成的 cref 属性用于泛型类型定义也就不足为奇了。您担心的是您想要显示与链接中不同的内容。您可以在使用元素时执行此操作,因为元素的内容是链接的文本。但在元素中,元素的内容是异常发生时的描述。所以我认为没有办法做你正在寻找的事情。