[英]Get XML Documentation Comments
/// <summary>
/// This can have any description of the class
/// </summary>
public class MyClass {}
在上面的代碼示例中,有什么方法可以獲得summary
值。
我的目標是在日志中記錄對象的操作,在這種情況下,我知道哪個類在什么時候做了什么。
我可以從this.GetType().Name
獲取類的this.GetType().Name
但在某些情況下,我需要有任何與之相關的描述。
如果有除 XML 文檔之外的任何其他方法來描述類,那么我想聽聽它。
謝謝你,
您無法從反射中獲取 XML 文檔,因為它不會生成到程序集中。 它生成為一個單獨的 XML 文件,您可以從您的應用程序中打開和讀取該文件。 (分發可能是一個問題,因為 XML 文件是在程序集編譯后生成的,因此您不能將其作為資源包含在程序集本身中。)
另一種解決方案可能是創建一個特殊的屬性,您可以填充和讀取該屬性。 就像是:
[Summary("This can have any description of the class.")]
public class MyClass {}
該解決方案的問題在於它不生成文檔 XML,因此您沒有 IntelliSense 等。
如果不想使用 XML 注釋,可以使用[Description]
屬性將描述存儲為元數據,即:
[Description("This can have any description of the class")]
public class MyClass {}
然后,您可以在運行時訪問此屬性的值:
public static string GetDescription(Type t) {
return TypeDescriptor.GetAttributes(t)
.OfType<DescriptionAttribute>()
.Select(x => x.Description)
.FirstOrDefault();
}
例如GetDescription(typeof(MyClass))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.