我们正在使用有问题方法的第三方程序集。有没有办法提醒我们的开发人员不要使用该方法,最好是在编译时,但运行时也可以。类似于Obsolete属性但对于另一个程序集。我无法覆盖该方法,因为它不是虚拟的。
答案 0 :(得分: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 - https://msdn.microsoft.com/en-us/library/dd820614.aspx
的nmore信息希望这很有用。