2012-10-18 25 views
16

防止C#程序員使用特定庫類的最佳方法是什麼?已過時的庫類

該類來自外部裝配,因此無法使用[Obsolete]屬性。我試圖使用Resharper自定義模式,但它似乎不支持泛型類型。

+8

完全刪除它? –

+0

在庫中,項目中使用的其他類很少。圖書館是第三方。 –

+0

哦,你沒有圖書館的代碼? –

回答

2

修補庫方法/類(反射器有幾個插件) - 例如,添加DeprecatedAttribute或修改其代碼以引發異常。

您也可以在CI服務器上運行一個特殊的單元測試,如果某個特定的不再使用的項目使用情況出現,則會失敗。

+0

我想你的意思是說「代碼分析」而不是單元測試。單元測試是針對功能的,而代碼分析則是對代碼本身實施規則。這可能是一個自定義代碼分析規則可能有用的實例。 –

1

您可以使用ildasm反編譯庫,添加[Obsolete(true)]屬性並使用ilasm重新組合。

您可能能夠找到一些裝配編輯工具,如Reflexil以及Reflector的試用版。

請注意,如果您編輯程序集,則會丟失所有簽名和內容。