在.NET中,您可以将某些方法标记为过时,以便开发人员在尝试使用已弃用的方法时收到警报. Obsolete("Do not call this method.") Private Sub FormerMethod() 问题是你只能在你控制的课程中这样做.当您希
<Obsolete("Do not call this method.")> Private Sub FormerMethod()
问题是你只能在你控制的课程中这样做.当您希望开发人员避免在.NET本身提供的类或供应商上使用某些方法时,您会怎么做?
例如,如果您希望开发人员在DataTable而不是Select上选择一些自定义扩展方法,该怎么办?如果只是弃用Select,我不得不定义DataTable类的自定义版本.这将使我们不得不警察是否使用了自定义表.
我知道有像(FxCop)这样的工具可以帮助实施编码标准;但是,我的问题是,如果没有某些第三方工具,这是否可以处理.
虽然你可能不喜欢这个答案,但我认为包装是合适的选择.对于第三方供应商的代码,包装应该是强制性的,只是为了产生单元测试的抽象级别.作为一个包装器,您显然可以将方法标记为已过时.
对于.NET对象,它有点棘手.显然,有人可以只包括命名空间并前往城镇;我不相信有这样一个问题的“仅代码”解决方案就像你想要的那样,除了可能进行一个搜索你的解决方案的集成测试,并且当你调用那个你不喜欢的特定方法时失败.