未报告代码分析违规

时间:2016-08-22 15:19:20

标签: c# .net visual-studio-2015 code-analysis roslyn-code-analysis

我们的解决方案中有几个代码分析违规未触发。这是一个例子:

using System;

namespace ClassLibrary1
{
    public class Class1
    {
        private readonly int _factor = 1;

        protected int Test1(object val)
        {
            if (val == null)
            {
                throw new ArgumentNullException(nameof(val));
            }
            return Blop(val.GetHashCode());
        }

        protected int Test2(object val)
        {
            return Blop(val.GetHashCode());
        }

        protected int Test3(object val)
        {
            if (val == null)
            {
                throw new ArgumentNullException(nameof(val));
            }
            return Blop(val.GetHashCode());
        }

        private int Blop(int value)
        {
            return value * _factor;
        }
    }
}

如果正在运行代码分析,则会报告:

Class1.cs(20): error CA1062: Microsoft.Design : In externally visible method 'Class1.Test2(object)', validate parameter 'val' before using it.

什么是绝对正确的。 但是如果你删除两个if / throw块中的一个或两个,代码分析没有报告任何现在的两个/三个违规行为。哪个没有意义恕我直言。

我们与CA1031(不捕获常规异常类型),CA1822(将成员标记为静态)和其他类似行为。

规则中是否存在这些错误(可能是因为有这么多错误)?或者它们只出现在大型解决方案上(我们有大约60个项目)?混合使用Roslyn和非Roslyn规则/支票会有问题吗?或者是我们使用干扰的StyleCop.Analyzers NuGet包吗?

任何想法如何解决这个或至少在哪里/谁解决这个问题将不胜感激。

0 个答案:

没有答案