มีวิธีแก้ปัญหาแบบเนทีฟชนิดหนึ่งที่ฉันพบสำหรับ. 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
คือname
การอ้างอิงเพียงแค่สร้างเปิดDocumentation.xml
ไฟล์
ฉันยังคิดว่าวิธีนี้ต้องสร้างโครงการหรือโซลูชันอย่างน้อยสองครั้ง (ครั้งแรกในการสร้างไฟล์ XML เริ่มต้นและครั้งที่สองเพื่อคัดลอกองค์ประกอบจากมันไปยังตัวมันเอง)
ด้านสว่างคือ Visual Studio ตรวจสอบความถูกต้องขององค์ประกอบที่คัดลอกดังนั้นจึงง่ายกว่ามากในการเก็บเอกสารและโค้ดให้ซิงค์กับอินเทอร์เฟซ / คลาสฐาน ฯลฯ (เช่นชื่อของอาร์กิวเมนต์ชื่อพารามิเตอร์ชนิด ฯลฯ )
ในโครงการของฉันฉันได้ลงเอยด้วยทั้ง<inheritdoc/>
(สำหรับ DocFX) และ<include/>
(สำหรับการเผยแพร่แพ็คเกจ NuGet และสำหรับการตรวจสอบที่ Visual Studio):
public void ExecuteReadOperation(Action action) => action();