我曾遇到过一些案例,其中有必要限制外部库和框架的API的访问,以防止对系统造成负面影响。
例如,在SharePoint应用程序中,调用spList.Items.GetItemById
以获取列表项似乎很自然,即使是在循环中,也可能没有意识到这会导致巨大的性能问题。
也可能是我们需要禁止使用SmtpClient,以迫使每个人都使用我们自己的类来发送电子邮件,以确保我们可以在测试环境中正确代理和模拟所有电子邮件。
除了在我们自己的代码中的某些特定位置之外,是否有任何可靠且合理直接的方法来实现对外部代码的这些约束?不必绝对在每种情况下都禁止访问这些方法/类,例如通过反射或仅通过某种禁用来禁止访问,而应该严格警告不要使用它们。优选地,如果可能/需要,迫使程序员积极采取措施来克服这些约束。