我們正在使用具有問題方法的第三方裝配。有什麼方法可以提醒我們的開發人員不應該使用該方法,最好是在編譯時,但運行時也可以。類似於Obsolete屬性,但是用於其他程序集。我不能重寫該方法,因爲它不是虛擬的。防止在其他裝配中使用方法
-1
A
回答
0
我可以看到這是可能的唯一方法是將API包裝在您自己的程序集中,並讓開發人員使用您的程序集而不是提供的程序集。
using MyAPI;
public class MyWrapper
{
private MyAPI _api;
public MyWrapper()
{
_api = new MyAPI(); //Especially if you want to do some inits
}
public void APIMethod()
{
_api.APIMethod();
}
}
我使用同樣的方法名稱,它可以讓你的開發人員只需用新的類替換對象的實例化,甚至更多厚臉皮,調用類的同樣的事情,更改命名空間。
然後,您可以省略違規方法或將其標記爲過時。
您甚至可以使用T4模板爲您生成代碼,以便在API更改時重新生成代碼。如果您使用反射,你甚至可以不寫T4 ...
有關T4 n更多信息 - https://msdn.microsoft.com/en-us/library/dd820614.aspx
希望這是有益的。
相關問題
- 1. 如何防止安裝其他產品
- 2. 防止其他方法在以前方法中滿足的條件下運行
- 3. 防止覆蓋其他Div
- 4. 防止其他被運行
- 5. 在其他方法中使用setBackgroundResource?
- 6. 在其他方法中使用NSString?
- 7. C#:其他方法的包裝方法
- 8. 使用.load()方法停止其他jquery方法的工作?
- 9. Python - 使用類方法來裝飾其他類方法
- 10. 如何防止暴露其他接口方法?
- 11. 防止.stop()阻止其他動畫
- 12. 防止用戶編輯其他條目
- 13. 如何防止其他用戶下載/打開其他文件?
- 14. salt-api使用其他匹配方法,然後使用glob
- 15. 如何在其他裝配中添加裝配?
- 16. 如何防止使用SetPixel方法?
- 17. 停止建築物的其他方法?
- 18. 防止其他應用程序使用動態框架
- 19. 防止其他git作者
- 20. 的jQuery防止其他鏈路切換
- 21. C#防止創建其他表格
- 22. 防止SKSpriteNode反彈其他SKSpriteNode
- 23. 防止其他類的類實例化
- 24. jQuery - 防止其他「點擊」功能
- 25. 防止iAd轉移其他視圖
- 26. 防止列更改沒有其他
- 27. 防止cookie獲取其他頁面?
- 28. 防止其他線程寫入
- 29. 防止大量的其他模式
- 30. Android - 使用AsyncTask調用方法會中斷其他方法
@HimBromBeere他要求一種方法來標記他無法訪問的第三方程序中過時的方法。我沒有辦法做到這一點,我知道。 – InBetween
然後它可能會在這裏回答:http://stackoverflow.com/questions/8316869/add-an-attribute-to-another-assemblys-class – HimBromBeere