我们正在使用具有问题方法的第三方装配。有什么方法可以提醒我们的开发人员不应该使用该方法,最好是在编译时,但运行时也可以。类似于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