Что ж, есть родное решение, которое я нашел для .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();