静态分析工具在访问变量之前检查锁定

Vin*_*ert 6 .net c# multithreading static-analysis

我知道有很多针对C#或.Net的静态分析工具.请参阅此问题以获取可用工具的良好列表.我过去曾使用过其中的一些,他们有很好的方法来检测问题.

我目前正在寻找一种方法来自动执行我们团队中的一些锁定规则.例如,我想强制执行以下规则:

"使用会员每一个公共方法FOO必须获得的锁 "或"每次调用foob​​ar的事件必须在外面锁 "

如果可行,编写自定义FxCop规则似乎相当复杂.有没有更简单的方法呢?

Tig*_*ran 0

可能的解决方案之一是实施代码契约您定义规则,在编译时运行它们(因此也可以集成到您的 CI 环境中)并获得结果。

有关使用 CodeContracts 作为代码静态分析工具的示例,请参阅:

静态代码分析和代码契约