Ada semacam solusi asli, yang saya temukan untuk .NET Core 2.2
Idenya adalah menggunakan <include>
tag.
Anda dapat menambahkan <GenerateDocumentationFile>true</GenerateDocumentationFile>
Anda .csproj
file.
Anda mungkin memiliki antarmuka:
namespace YourNamespace
{
public interface IType
{
void ExecuteAction();
}
}
Dan sesuatu yang diwarisi darinya:
using System;
namespace YourNamespace
{
public class InheritedType : IType
{
public void ExecuteAction() => Console.WriteLine("Action is executed.");
}
}
Oke, ini agak menakutkan, tetapi menambahkan elemen yang diharapkan ke file YourNamespace.xml
.
Jika Anda membangun Debug
konfigurasi, Anda dapat menukar Release
untuk Debug
di file
atributinclude
tag.
Untuk menemukan yang benar member
Ini name
untuk referensi hanya membuka dihasilkanDocumentation.xml
berkas.
Saya juga berasumsi bahwa pendekatan ini memerlukan proyek atau solusi untuk dibangun setidaknya dua kali (pertama kali membuat file XML awal, dan kedua kalinya menyalin elemen darinya ke dirinya sendiri).
Sisi baiknya adalah Visual Studio memvalidasi elemen yang disalin, sehingga jauh lebih mudah untuk menjaga dokumentasi dan kode sinkron dengan antarmuka / kelas dasar, dll (misalnya nama argumen, nama parameter tipe, dll).
Di proyek saya, saya telah berakhir dengan <inheritdoc/>
(untuk DocFX) dan <include/>
(Untuk menerbitkan paket NuGet dan untuk validasi di Visual Studio):
public void ExecuteReadOperation(Action action) => action();