c# - 如何防止来自外部库的特定方法调用
问题描述
我们正在使用第 3 方库(ORM Mapper)来访问数据库。该库不再支持。不久前,我们在这个库的特定方法中发现了一些错误(当它在列表中获取非唯一实体以保存在数据库中时它会崩溃)并且我实现了一个 C# 扩展类,其中修复了这个错误,我还发现并用我的扩展替换了对库方法的所有调用,并与我的团队沟通了这个问题。
现在我想防止在我们的代码库中使用库方法,所以它只允许扩展类调用。我如何确保将来没有人可以使用库方法,或者至少会通知他禁止此调用。
我查看了 ReSharper 的 External Annotations,但没有发现它对我的情况有用。
解决方案
我最终基于“Analyzer with Code Fix”Microsoft 的模板编写了一个小型自定义代码分析器,然后在我们的项目中添加了生成的 dll,这样我和我的队友就可以使用它。这篇文章对我帮助很大。
推荐阅读
- azure-web-app-service - 如何从 azure web 应用程序调用作为连续 azure webjob 运行的进程
- sql - 按日期和 ID 从平均结果中插入多行
- android - CollapsingToolbar 布局不滚动
- c - 如何检查字符串日期是否已超过某个日期
- openlayers - 缩放扩展至多个 KML 的多层边界
- java - 递归地实现与列表元素相乘的 q 的幂和
- python-3.x - 如何通过python pandas将带有键值对(都具有整数值)的字典写入excel
- angular - 带有创建选项的 Angular 材质下拉菜单
- swift - 将html文本转换为纯文本时是否有任何功能可以制作可触摸的url
- inno-setup - 单击完成按钮后运行应用程序(不是在安装后)