您希望看到哪些可定义的静态代码检查规则添加到 FxCop 和/或宪兵队?
您为什么希望看到添加的规则,例如有什么好处等?
你的规则如何实施?
您希望看到哪些可定义的静态代码检查规则添加到 FxCop 和/或宪兵队?
您为什么希望看到添加的规则,例如有什么好处等?
你的规则如何实施?
我想很快地定义和实施我自己的规则。我为 FxCop 尝试过一次,但我发现 API 不是很清楚 - 并且没有太多的文档。我使用了 FxCop 1.36,也许事情发生了变化......
所以我希望看到 FxCop 有一个清晰易用的界面……那太好了 :)
我试图实施的规则是:
基本上我想对非公共成员强制执行 xml-comments。
就个人而言,我更希望看到不在语句中使用IDisposable
实现。using
所以如果你有这样的代码:
var fs = new FileStream(...);
// Other code.
fs.Dispose();
它会告诉你在using
声明中使用它。
好处是它会提醒您注意您可能不知道应该处置的对象没有及时处置的情况。
但是,有足够多的时间,IDisposable
在 using 语句中不为这样的规则声明实现是一种有效的情况,这样很快就会变得很痛苦。大多数情况下,这种情况是将IDisposable
实现作为方法的参数。
我的意思不是使用实现细节不需要调用的类Dispose
,(例如MemoryStream
或DataContext
);这些实现IDisposable
并且应该始终Dispose
调用它们,而不管实现细节如何,因为针对暴露的合约进行编码总是更好。
我真的希望二进制分析足够聪明,能够识别出接口的可能性。
它是否可以通过接近定义的类型及其成员来确定,是否有可以推断为接口的公共资源。
显然,这不仅仅是一个警告,因为有时希望明确不使用接口。
考虑到这一点,我也希望看到二进制分析足够聪明,以检查访问修饰符的可能降级。
确定一个类、属性或方法是否可以受到更多限制应该不难。