您希望 FxCop/Gendarme 有什么规则?
-
20-09-2019 - |
题
您希望 FxCop 和/或 Gendarme 添加什么可定义的静态代码检查规则?
为什么您希望看到添加规则,例如有什么好处等?
你的规则如何实施?
解决方案
个人而言,我宁愿看到在IDisposable
语句不使用using
实现。
所以,如果你有这样的代码:
var fs = new FileStream(...);
// Other code.
fs.Dispose();
这将告诉你在using
语句中使用它。
在好处是,它会提醒你,你的情况可能不知道,应该没有被设置在及时处置,其中的对象。
不过,也有足够的时间它是一个有效的情况在using语句没有声明IDisposable
实现了这样的规则很快成为一种痛苦。大多数情况下,这种情况下,服用IDisposable
实现作为参数的方法。
我什么不的意思是类用途,其中实现细节删除需要调用Dispose
,(例如MemoryStream
或DataContext
);这些实施IDisposable
,应始终都Dispose
呼吁它们,无论的实施的细节,因为它始终是针对暴露出的合同更好的代码。
其他提示
我想很快地定义并实施我自己的规则。我在 FxCop 上尝试过一次,但我发现 API 不是很清晰 - 并且周围没有太多文档。我使用了 FxCop 1.36,也许情况发生了变化......
所以我希望看到 FxCop 拥有一个清晰且易于使用的界面......那太好了 :)
我尝试执行的规则是:
- 文档内部方法
- 文档内部类型
- ...
基本上我想对非公共成员强制执行 xml 注释。
我真的很喜欢这个二进制分析是足够聪明的识别接口的可能性。
如果它可以从接近定义的类型和它们的成员确定,如果有可能被外推到一个公共的接口
显然,这不应该超过一个警告多,因为它有时whished明确不使用的接口。
在想着这件事,我也想看看二进制分析,足够聪明,检查访问修饰符的评级可能被下调。
它不应该是硬,以确定是否一个类,属性或方法可以更受限制。