Żadna z dotychczas pokazanych odpowiedzi nie działa dla mnie całkowicie. ReSharper nie przekształci tagu see w Ctrllink + możliwy do kliknięcia (np. ), Chyba że zostanie całkowicie rozwiązany.
Gdyby metoda w OP znajdowała się w nazwanej przestrzeni nazw Test
, całkowicie rozstrzygnięty link do pokazanej metody to:
<see cref="M:Test.FancyClass`1.FancyMethod``1(`0)"/>
Ponieważ możesz być w stanie wypracować, powinien być tylko jeden wsteczny przed liczbą parametrów typu klasy, a następnie dwa wsteczne przed liczbą parametrów typu metody, wówczas parametry są parametrem o indeksie zerowym z odpowiednią liczbą wstecznych.
Widzimy więc, że FancyClass
ma jeden parametr typu klasy, FancyMethod
ma jeden parametr typu, a obiekt FancyClass
typu parametru zostanie przekazany do metody.
Jak można lepiej zobaczyć w tym przykładzie:
namespace Test
{
public class FancyClass<A, B>
{
public void FancyMethod<C, D, E>(A a, B b, C c, D d, E e) { }
}
}
Link staje się:
M:Test.FancyClass`2.FancyMethod``3(`0,`1,``0,``1,``2)
Lub „Klasa z parametrami dwa typu, który posiada metodę z trzema parametrami typu gdzie parametry metod są ClassType1
, ClassType2
, MethodType1
, MethodType2
, MethodType3
”
Dodatkowo, nie znalazłem tego udokumentowanego nigdzie i nie jestem geniuszem, kompilator powiedział mi to wszystko. Wszystko, co musisz zrobić, to utworzyć projekt testowy, włączyć dokumentację XML , a następnie wstawić kod, dla którego chcesz wypracować link, i umieścić na nim komentarz XML doc ( ///
):
namespace Test
{
public class FancyClass<T>
{
///
public string FancyMethod<K>(T value) { return "something fancy"; }
}
public class Test
{
public static void Main(string[] args) { }
}
}
Następnie skompiluj projekt, a wygenerowana dokumentacja XML zawiera link w elemencie doc
-> members
-> member
pod atrybutem name
:
<?xml version="1.0"?>
<doc>
<assembly>
<name>Test</name>
</assembly>
<members>
<member name="M:Test.FancyClass`1.FancyMethod``1(`0)">
</member>
</members>
</doc>