我有一个使用文件系统实体来操作数据的类。我们有几种专门设计的方法来(尝试)解决我们在使用这种方法时遇到的一些问题(文件锁定、不存在的文件等)。理想情况下,如果其他开发人员试图通过 System.IO 而不是使用辅助方法直接访问文件系统,我希望能够发出警告。
这可能吗?我正在寻找的行为是有效地将 File.ReadAllText() 等方法标记为已过时,但仅限于此项目(不是解决方案范围内)。
我已经进行了一些研究,看来我唯一的选择是“告诉他们确保他们使用您的方法”。我希望有人能给我一个不同的、更有帮助的答案。 :)
--编辑-- 自定义 StyleCop 或 FxCop 规则的建议很好,但不幸的是在这种情况下不切实际(并非部门中的每个开发人员都使用这些出色的工具),并且进行文件访问的合法方法确实使用系统.IO。向合法方法添加“忽略”属性也是一个危险的想法。如果有人看到我如何“破坏”了我自己的规则,他们可能会将该属性复制到他们自己的方法中。
最佳答案
使用带有 StyleCop 的静态分析工具(例如 FxCop 或 rule )捕获“不要直接使用 System.IO
”。然后将其集成为自动构建过程的一部分,并在有人尝试直接使用 System.IO
时抛出。没有人喜欢破坏构建。
关于c# - 防止其他开发人员在类中使用基方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200628/