簡體   English   中英

有選擇地抑制C#中的XML代碼注釋?

[英]Selectively suppress XML Code Comments in C#?

我們向外部客戶提供了許多程序集,但並非所有公共API都得到官方支持。 例如,由於設計選擇不夠理想,有時必須從組件公開公開類型才能使我們的其余代碼工作,但我們不希望客戶使用該類型。 傳達缺乏支持的一部分並不是以XML注釋的形式提供任何智能感知。

有沒有辦法有選擇地抑制XML注釋? 我正在尋找除了忽略警告1591之外的其他事情,因為這是一個長期維護問題。

示例:我有一個包含公共類A和B的程序集.A是官方支持的,應該有XML文檔。 B不適合外部使用,不應記錄在案。 我可以打開XML文檔然后禁止警告1591.但是當我后來添加官方支持的類C時,我希望編譯器告訴我,我已經搞砸了並且沒有添加XML文檔。 如果我在項目級別壓制了1591,就不會發生這種情況。 我想我可以#cragma跨越整個類,但似乎應該有更好的方法來做到這一點。

將這些方法設置為internal ,並將[assembly: InternalsVisibleTo("AssemblyName")]屬性添加到公開它們的程序集中。

傳達缺乏支持的一部分並不是以XML注釋的形式提供任何智能感知。

你可以用簡單的<summary>來評論這些方法嗎? 不用於外部使用。</ summary>評論?

如何不提供intellisense?

///<summary>A documentation</summary> 
public class A { }

///<summary>B documentation. This class is not supported...</summary> 
[EditorBrowsable(EditorBrowsableState.Advanced)]
public class B { }

///<summary>C documentation</summary> 
public class C { }

這樣,您仍然可以記錄不受支持的類(內部用戶也很重要!)並讓您的外部用戶在intellisense上看不到它們。 在內部,您可以使visual studio“看到”這些高級構造。 EditorBrowsableAttribute的頁面告訴我們如何:

在Visual C#中,您可以在“工具”下的“智能感知”和“屬性”窗口中使用“隱藏高級成員”設置控制何時顯示高級屬性 選項| 文字編輯器| C#。 相應的EditorBrowsableState為Advanced。

嘗試使用#pragma指令啟用或禁用特定警告

///<summary>some documentation</summary>
public class A{
    //...
}

#pragma warning disable 1591
public class B{
    //...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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