codeEntityReference методу на замок из песка developerHowToDocument
Я пытаюсь создать ссылку на пользовательский метод расширения, используя элемент <codeEntityReference>
MAML, и как только я создаю документацию, я получаю все содержимое тега <codeEntityReference>
вместо ссылки на весь метод.
Пример метода будет следующим:
namespace SampleProject
{
public static class ExtensionMethods
{
public static bool SomeExtension<T>(this T some) => true;
}
}
И <codeEntityReference>
будет выглядеть как <codeEntityReference>M:SampleProject.ExtensionMethods.SomeExtension{T}(TObject)</codeEntityReference>
Приведенная выше ссылка приведет к выходу типа M:SampleProject.ExtensionMethods.Некоторое Растяжение{T}(T) .
На самом деле, я получаю следующую ошибку во время документации строение:
Warning: BuildAssembler: warning : ResolveReferenceLinksComponent: [52e40f26-3dfe-47e0-adf1-09233e98f42e] неизвестная цель ссылки М: SampleProject.ExtensionMethods.Некоторое Растяжение{T}(T)'
Я что-то упустил? А что тут не так? Я попытался предоставить ссылку на метод как:
M:SampleProject.ExtensionMethods.SomeExtension`1
...но это не решило проблему.
2 ответа:
Наконец, я решил проблему, проверив, как компилятор C# генерирует XML-файл документации для сборки.
Например,
<codeEntityReference>
для моего метода расширения образца будет:<codeEntityReference> M:SampleProject.ExtensionMethods.SomeExtension``1(``0) </codeEntityReference>
Лучшим подходом было бы использовать инструмент ссылки на сущности! Вы можете найти его в меню Вид->другие окна в visual studio.
Как только вы его откроете, выберите "объекты кода" в поле типа combobox и выполните поиск метода/свойства/класса, для которого требуется ссылка на код. Он покажет, что вам нужно для работы ссылки на сущность кода.