StyleCop /代码分析错误 - 如何抑制

时间:2011-02-28 09:10:59

标签: c# visual-studio code-analysis fxcop stylecop

我在SA0102(在文件中发现了一个语法错误)中遇到错误,当我在签到时运行代码分析时抛出错误(另一个奇怪的问题,因为我认为SA是一个StyleCop问题?!)。通过添加/删除代码的过程,我推断出以下方法导致抛出此错误。据我所知,这种方法是有效的,并且基于其他人的评论 - StyleCop中似乎存在一些围绕此规则的错误。

无论如何,我的问题是如何抑制此警告?我已经尝试将文件名更改为.designer.cs,但这似乎没有任何效果(我确保忽略设计器文件已被选中)。关于如何解决这个问题,我有点迷失,因为我无法在不传递StyleCop签到政策的情况下签到代码!另外,这个

作为参考,这是导致问题的方法 - 我怀疑在声明中使用nullables可能是问题。

编辑:我正在使用StyleCop v4.4.1.2

编辑:如果我删除IEnumerable <int?&gt;选中,int?参数中的page = null,规则通过。

[HttpPost]
public ActionResult Search(string searchCriteria, IEnumerable`<int?`> selected, int? page = null)
{
    if (page.HasValue)
    {
        const int PageSize = 6;
        IEnumerable<MyClass> src = this.sectors.Where(o => (selected == null || !selected.Contains(o.Id)) && o.Name.Contains(searchCriteria));
        string rows = this.RenderView(@"Awesome\LookupList", src.Skip((page.Value - 1) * PageSize).Take(PageSize));
        return this.Json(new { rows, more = src.Count() > page * PageSize });
    }

    return this.View(@"Awesome\LookupList", this.sectors.Where(o => (selected == null || !selected.Contains(o.Id)) && o.Name.Contains(searchCriteria)));
}

2 个答案:

答案 0 :(得分:1)

好的,如果在导致问题的参数中似乎使用了可空类型。

答案 1 :(得分:0)

刚刚用4.4.1.2检查了你的例子,它运行正常。

您确定您的登记政策使用4.4.1.2吗?它在服务器上运行,而不是在本地计算机上运行 - 因此您可能安装了StyleCop 4.4.1.2,但服务器使用其他版本。

以前的StyleCop版本(例如,4.4.0.14)确实有一些与可选参数相关的错误。