CA1502的自定义阈值

时间:2014-02-10 13:32:30

标签: c# code-analysis

有没有办法更改CodeAnalysis规则的阈值?

特别是,当方法的代码复杂度超过20时,我们希望Build失败。不幸的是,规则CA1502的阈值为25:

  

当圈复杂度超过25时,规则会报告违规行为。

我们可以以某种方式改变这种情况吗?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。遗憾的是,为可配置规则提供自定义规则设置的唯一方法是通过.fxcop项目文件,由于处理规则集和项目文件的顺序,该文件无法与VStudio无缝集成。基本上,如果要同时使用规则集文件和项目文件,则需要在项目文件中包含所有规则库文件的列表,并禁用规则。然后,您将能够通过规则集控制是启用还是禁用规则。完成所有设置后,您可以使用Settings部分调整圈复杂度规则的设置,如下所示(假设您可以将所有阈值设置为20):

<Settings>
    <Rule TypeName="AvoidExcessiveComplexity">
        <Entry Name="Warning Threshold">20</Entry>
        <Entry Name="Information Threshold">20</Entry>
        <Entry Name="Critical Warning Threshold">20</Entry>
        <Entry Name="Critical Error Threshold">20</Entry>
        <Entry Name="Error Threshold">20</Entry>
        <Entry Name="Recommended Threshold">20</Entry>
    </Rule>
</Settings>