Что ж, есть родное решение, которое я нашел для .NET Core 2.2.
Идея в том, чтобы использовать <include>
тег.
Можете добавить <GenerateDocumentationFile>true</GenerateDocumentationFile>
свой .csproj
файл.
У вас может быть интерфейс:
namespace YourNamespace
{
public interface IType
{
void ExecuteAction();
}
}
И кое-что, что от него унаследовано:
using System;
namespace YourNamespace
{
public class InheritedType : IType
{
public void ExecuteAction() => Console.WriteLine("Action is executed.");
}
}
Хорошо, это немного страшно, но добавляет ожидаемые элементы в YourNamespace.xml
.
Если построить Debug
конфигурацию, вы можете поменять местами Release
для Debug
вfile
атрибутеinclude
тега.
Для того, чтобы найти правильный member
«S , name
чтобы ссылаться только на открытом генерироватьсяDocumentation.xml
файл.
Я также предполагаю, что этот подход требует, чтобы проект или решение создавалось как минимум дважды (первый раз для создания исходного XML-файла, а второй раз для копирования элементов из него в себя).
Яркая сторона заключается в том, что Visual Studio проверяет скопированные элементы, поэтому намного проще синхронизировать документацию и код с интерфейсом / базовым классом и т. Д. (Например, имена аргументов, имена параметров типа и т. Д.).
В моем проекте у меня были оба <inheritdoc/>
варианта (для DocFX) и <include/>
(для публикации пакетов NuGet и для проверки в Visual Studio):
public void ExecuteReadOperation(Action action) => action();