[Obsolete]
屬性對於標記已棄用而偏好更好的實現的類非常方便,但它對項目所針對的.Net版本不敏感。版本敏感已廢棄屬性
例如,假設我在4.0之前版本的.NET中使用了自制的ThreadSafeDictionary
類。當.NET 4.0推出時,它包含一個名爲ConcurrentDictionary的新類。我希望能夠將ThreadSafeDictionary
標記爲[Obsolete]
,但只有只有如果項目正在爲.Net 4.0編譯。看起來股票ObsoleteAttribute
不支持框架版本控制編譯器的警告。
有沒有辦法做到這一點?
也許是迂腐的,但是如果某種方法已經過時,那麼它在所有版本中都已經過時 - 如果您正在編譯2.0版本,它仍然是過時的! (他們應該升級以獲得更適合的類) – 2011-04-11 16:28:02
我不能總是將每個程序升級到最新和最好的框架。例如,我們有一箇中間件平臺,必須在通過廣泛的QA認證之前使用最新版本的框架。與此同時,我們必須能夠部署.Net 3.5,同時開發新的項目/分支,最終將部署到4.0 – 2011-04-11 16:30:49
勞倫斯:這並不意味着它不是過時的;通常情況下,我們被限制使用過時的版本。我與ATG電子商務框架一起工作,並且僅在Sun終止Java 1.5之後的一年內才被證明可以在Java 1.6上運行。瘋狂的時代。 – 2011-04-11 17:24:40