在xml-comment的cref部分构造泛型类型
本文关键字:泛型类型 xml-comment cref | 更新日期: 2023-09-27 18:16:52
我有一个像这样的通用异常类:
public class DuplicateException<TEntity> : Exception
{
public TEntity Entity { get; set; }
}
和我有非泛型方法可能抛出构造泛型异常:
void Save()
{
throw new DuplicateException<SomeEntity>();
}
这个方法可以抛出这个泛型异常,但只能抛出这个构造类型DuplicateException<SomeEntity>
,它不能抛出其他类型参数而不是SomeEntity
的异常。
现在我想在xml-comment for Save
方法中指定这个事实。本文介绍了如何对泛型异常的方法进行注释,我尝试了以下两种方法:
1)在VS中默认插入自动补全:
/// <exception cref="DuplicateException{TEntity}" />
2)用SomeEntity
代替TEntity
/// <exception cref="DuplicateException{SomeEntity}" />
但是在这两种情况下,输出XML仍然声明该方法可能抛出泛型非构造类型,根本没有提到SomeEntity
:
<exception cref="T:MyNameSpace.DuplicateException`1" />
cref属性的作用是链接到一个类型的文档。但是没有具体泛型类型的文档,所以生成的cref属性是针对泛型类型定义的也就不足为奇了。您所关心的是,您希望显示的内容与链接中的内容不同。在使用元素时可以这样做,因为元素的内容就是链接的文本。但是在元素中,元素的内容是异常发生时间的描述。所以我认为没有办法做到你想要的。