到目前为止,没有一个答案完全适合我。ReSharper不会将see标签转换为Ctrl+可点击的链接(例如),除非它完全解析。
如果OP中的方法在名为Test的命名空间中,则显示的方法的完全解析链接将是:
<参见 cref=“M:Test.FancyClass'1.FancyMethod''1('0)”/>
正如您可能能够计算出的那样,在类类型参数的数量之前应该只有一个反勾号,然后在方法类型参数的数量之前应该只有两个反勾号,然后这些参数是具有适当反勾号数量的零索引参数。
因此,我们可以看到FancyClass有一个类类型参数,FancyMethod有一个类型参数,FancyClass参数类型的对象将被传递给该方法。
在这个例子中,你可以更清楚地看到:
namespace Test
{
public class FancyClass<A, B>
{
public void FancyMethod<C, D, E>(A a, B b, C c, D d, E e) { }
}
}
链接变成:
M: Test.FancyClass ' 2. fancymethod ' ' 3 (0, 1, ' ' 0 ' ' 1 ' ' 2)
或者“有两个类型参数的类,它有一个有三个类型参数的方法,其中方法参数是ClassType1, ClassType2, MethodType1, MethodType2, MethodType3”
作为一个额外的说明,我没有发现这个记录在任何地方,我不是一个天才,编译器告诉我这一切。你所要做的就是创建一个测试项目,启用XML文档,然后插入你想要得到链接的代码,并在它上面加上一个XML文档注释(///):
namespace Test
{
public class FancyClass<T>
{
///
public string FancyMethod<K>(T value) { return "something fancy"; }
}
public class Test
{
public static void Main(string[] args) { }
}
}
然后构建您的项目,输出的XML文档包括属性名称下的doc->members->成员元素中的链接:
<?xml version="1.0"?>
<doc>
<assembly>
<name>Test</name>
</assembly>
<members>
<member name="M:Test.FancyClass`1.FancyMethod``1(`0)">
</member>
</members>
</doc>