Cóż, jest coś w rodzaju natywnego rozwiązania, które znalazłem dla .NET Core 2.2
Chodzi o to, aby użyć <include>
tagu.
Możesz dodać <GenerateDocumentationFile>true</GenerateDocumentationFile>
swój .csproj
plik.
Możesz mieć interfejs:
namespace YourNamespace
{
public interface IType
{
void ExecuteAction();
}
}
I coś, co po nim dziedziczy:
using System;
namespace YourNamespace
{
public class InheritedType : IType
{
public void ExecuteAction() => Console.WriteLine("Action is executed.");
}
}
Ok, jest to trochę przerażające, ale dodaje oczekiwane elementy do YourNamespace.xml
.
Jeśli budować Debug
konfigurację, można zamienić Release
na Debug
w file
atrybucieinclude
znacznika.
Aby znaleźć poprawne member
„s name
odwołać wystarczy otworzyć wygenerowany Documentation.xml
plik.
Zakładam również, że takie podejście wymaga co najmniej dwukrotnego zbudowania projektu lub rozwiązania (za pierwszym razem do utworzenia początkowego pliku XML, a za drugim do skopiowania z niego elementów do siebie).
Jasną stroną jest to, że Visual Studio sprawdza poprawność skopiowanych elementów, więc znacznie łatwiej jest zsynchronizować dokumentację i kod z interfejsem / klasą bazową itp. (Na przykład nazwy argumentów, nazwy parametrów typu itp.).
W moim projekcie skończyło się na obu <inheritdoc/>
(dla DocFX) i <include/>
(Do publikowania pakietów NuGet i do walidacji w Visual Studio):
public void ExecuteReadOperation(Action action) => action();