2016-01-22 35 views
1

我想創建一個自定義版本TimeoutException(我只會覆蓋構造函數以添加更多信息),並且希望防止/阻止未來的創作(調用特定模塊的System.TimeoutException的構造函數)。是否有可能將TimeoutException的構造函數標記爲已棄用/過時?將一個無主的類型標記爲已棄用或已過時

這同樣適用於在Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsTrue(System.Boolean),我想貶低/過時的這種方法(只只對Boolean實施,我不想碰那個採取(Boolean, String)(Boolean, String, Object[]).

我知道的那些有[Obsolete] [Deprecate]這樣做,但是,由於該方法未在項目中聲明/實現,我不知道如何添加它們。

+1

你的工程師們非常關心COULD,他們從來沒有停止過,認爲如果他們應該。 – krillgar

+1

這聽起來更像是一個自定義規則的代碼樣式工具。 –

+2

您應該可以使用FxCop並創建一個自定義規則,以查找對您不想使用的構造函數的調用。 –

回答

3

不,您不能在其他人的二進制代碼中標記代碼爲已棄用或已過時。

作爲評論者m提到,你可以寫一個自定義的FxCop規則來解決這個問題。更好的是,如果您使用最新的Visual Studio,請編寫自定義Roslyn分析器(https://msdn.microsoft.com/en-us/magazine/dn879356.aspx)。

就個人而言,我只想依靠團隊進行良好的代碼審查流程,並在開發人員使用錯誤的東西時用尖尖的棍棒戳開。

+0

我覺得即使有巫術可以讓你將這些屬性注入到運行時的無主類型中。在運行時有這些可能會破壞整個目的,因爲它們可能無法觸發運行時異常。 –

相關問題