簡體   English   中英

獲取 XML 文檔注釋

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM