到目前为止,没有一个答案完全适合我。除非完全解析,否则ReSharper 不会将 see 标记转换为Ctrl+click-able 链接(例如)。
如果 OP 中的方法位于名为 的命名空间中Test
,则显示的方法的完全解析链接将是:
<see 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
->member
元素中包含链接name
:
<?xml version="1.0"?>
<doc>
<assembly>
<name>Test</name>
</assembly>
<members>
<member name="M:Test.FancyClass`1.FancyMethod``1(`0)">
</member>
</members>
</doc>