c# - 防止其他开发人员在类中使用基方法

标签 c# attributes obsolete

我有一个使用文件系统实体来操作数据的类。我们有几种专门设计的方法来(尝试)解决我们在使用这种方法时遇到的一些问题(文件锁定、不存在的文件等)。理想情况下,如果其他开发人员试图通过 System.IO 而不是使用辅助方法直接访问文件系统,我希望能够发出警告。

这可能吗?我正在寻找的行为是有效地将 File.ReadAllText() 等方法标记为已过时,但仅限于此项目(不是解决方案范围内)。

我已经进行了一些研究,看来我唯一的选择是“告诉他们确保他们使用您的方法”。我希望有人能给我一个不同的、更有帮助的答案。 :)

--编辑-- 自定义 StyleCop 或 FxCop 规则的建议很好,但不幸的是在这种情况下不切实际(并非部门中的每个开发人员都使用这些出色的工具),并且进行文件访问的合法方法确实使用系统.IO。向合法方法添加“忽略”属性也是一个危险的想法。如果有人看到我如何“破坏”了我自己的规则,他们可能会将该属性复制到他们自己的方法中。

最佳答案

使用带有 StyleCop 的静态分析工具(例如 FxCoprule )捕获“不要直接使用 System.IO”。然后将其集成为自动构建过程的一部分,并在有人尝试直接使用 System.IO 时抛出。没有人喜欢破坏构建。

关于c# - 防止其他开发人员在类中使用基方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2200628/

相关文章:

c# - 属性中的单词 "property:"是什么

php - 使用 PHP 将 HTML 表格解析为数组 - 获取图像属性

javascript - jQuery - 数组元素作为选择器

c - 为什么 drand48() 和 friend 过时了?

c# - 将图像从数据库绑定(bind)到 GridView 而不使用处理程序或 httphandler

c# - 在 for 循环上检测到无法访问的代码

c# - 泛型 - 类型参数声明必须是标识符而不是类型

c# - SignalR(v2.2.0) Client.Group() 不适用于 IOS 客户端

c# - 如何将代码标记为 "not for future use"

c# - 如何在 C# 中将特定参数标记为过时/弃用?