我在VS 2005下編寫了一個C#類庫(我知道,現代化,但我們的預算很緊張)。描述屬性與<summary>屬性標記
在我看來,如果我在XML文檔中使用「摘要」標籤,我的用戶可以通過智能感知和工具提示等查看該信息,但不能在Studio的屬性窗口中看到該信息。
要在該窗口中獲得某些內容,我似乎需要使用[Description("This is it")]
屬性。
我正確嗎?如果是這樣,那麼它似乎是我需要複製:-(
的描述信息或者,有沒有更好的辦法?謝謝!
我在VS 2005下編寫了一個C#類庫(我知道,現代化,但我們的預算很緊張)。描述屬性與<summary>屬性標記
在我看來,如果我在XML文檔中使用「摘要」標籤,我的用戶可以通過智能感知和工具提示等查看該信息,但不能在Studio的屬性窗口中看到該信息。
要在該窗口中獲得某些內容,我似乎需要使用[Description("This is it")]
屬性。
我正確嗎?如果是這樣,那麼它似乎是我需要複製:-(
的描述信息或者,有沒有更好的辦法?謝謝!
是的,這是正確的。這兩種方法都非常不同的目的。
的/// <summary></summary>
意見被用來生成XML文檔,爲您的項目在編譯時,它也由Visual Studio其智能感知數據庫進行解析。
的[DescriptionAttribute]
provid es在設計器中使用的描述文本,最顯着的是在屬性窗口的底部。
微軟自己的Windows窗體庫裏散佈着這兩者。
我不知道有什麼辦法可以合併這兩個,但是考慮一下你是否真的想讓他們與正好一樣。在我自己的類庫中,我經常希望在設計器中顯示稍微不同的信息,而不是將其包含在我的技術文檔中。
舉一個簡單的例子,我可能想在這個財產是不是在Windows的某些版本支持的設計師清楚,但貶謫這個信息給<remarks>
節中我的技術文檔:
/// <summary>
/// Gets or sets a value indicating whether a shield should be displayed
/// on this control to indicate that process elevation is required.
/// </summary>
/// <remarks>
/// The elevation-required shield is only supported under Windows Vista
/// and later. The value of this property will be ignored under earlier
/// operating systems.
/// </remarks>
[Category("Appearance")]
[Description("Displays a shield to indicate that elevation is required. " +
"(Only applies under Windows Vista and later.)")]
public bool ShowShield { get; set; }
我的理解是你是對的。但是,您可以自動執行大多數此項工作by using GhostDoc,該工作有一個免費版本,您可以自定義該版本以添加到「描述」屬性中。
摘要XML文檔標籤和描述屬性是兩個完全不同的東西。
摘要標籤用於組件文檔。
的描述屬性是contols組件模型的一部分,並且是可用在運行時內該應用程序。這意味着信息會被編譯到您的二進制程序集文件中。說明屬性的內容可能對應用程序的最終用戶甚至可見(例如,在使用PropertyGrid控件時)。
如果您正在查找文檔,請使用XML文檔。如果你想創建一個可重用的組件,你也可以使用Description屬性。
謝謝大家,這就是我認爲的......不一定是我想要的;-) – John66NY 2011-04-05 12:42:46
如果你真的想要消除重複,可以考慮將所有的字符串放到一個資源文件中。然後,您可以簡單地從資源文件中提取字符串值,而不是直接將其寫入代碼中。如果這對你很重要,它也使本地化變得更容易。我在下面的答案中忽略了這一點。如果您發現它是缺失的鏈接,我很樂意添加它。 – 2011-04-06 06:34:44