你希望FxCop / Gendarme有什么规则?

时间:2010-02-16 14:29:51

标签: fxcop static-code-analysis gendarme

您希望将哪些可定义的静态代码检查规则添加到FxCop和/或Gendarme中?

为什么你希望看到添加规则,例如有什么好处?

您的规则如何实施?

4 个答案:

答案 0 :(得分:2)

我想快速定义和实施自己的规则。我为FxCop尝试了一次,但我发现API不是很清楚 - 并且没有太多的文档。我使用了FxCop 1.36,也许改变了......

所以我希望看到FxCop有一个清晰易用的界面......那会很棒:)

我试图实施的规则是:

  • DocumentInternalMethods
  • DocumentInternalTypes
  • ...

基本上我想对非公开成员强制执行xml-comments。

答案 1 :(得分:1)

就个人而言,我希望在IDisposable语句中看不使用using实现。

所以如果你有这样的代码:

var fs = new FileStream(...);

// Other code.

fs.Dispose();

它会告诉您在using声明中使用它。

这样做的好处是,它可以提醒您注意您可能不知道应该处置的物品未及时处理的情况。

然而,有足够的时间,有效的情况是不要在using语句中声明IDisposable实现,这样的规则很快就会变得很痛苦。大多数情况下,这种情况是将IDisposable实现作为方法的参数。

我所做的是指类的用法,其中实现细节无需调用Dispose,(例如MemoryStreamDataContext);那些实现IDisposable并且应始终Dispose调用它们,而不管实现详细信息,因为对于公开的合同进行编码总是更好。

答案 2 :(得分:1)

我真的希望二进制分析能够足够智能地识别接口的可能性。

如果可以通过接近已定义的类型及其成员来确定是否存在可以外推到接口的公共文件。

显然,这不应该只是一个警告,因为它有时被暗示明确不使用接口。

答案 3 :(得分:1)

在考虑到这一点后,我也希望看到二进制分析能够足够智能地检查访问修饰符的可能降级。

不应该很难确定类,属性或方法是否可以受到更多限制。