簡體   English   中英

StyleCop /代碼分析錯誤-如何抑制

[英]StyleCop/Code Analysis Error - How to suppress

我在簽到時運行代碼分析時收到SA0102錯誤(“在文件中發現語法錯誤”)錯誤(另一個奇怪的問題,因為我認為SA是StyleCop問題?!)。 通過添加/刪除代碼的過程,我推斷出以下方法導致引發此錯誤。 據我所知,此方法是有效的,並且基於其他人的評論-StyleCop中似乎有一些圍繞此規則的錯誤。

無論如何,我的問題是如何抑制此警告? 我嘗試將文件名更改為.designer.cs,但是這似乎沒有任何效果(我已確保選中了忽略設計器文件)。 由於無法通過StyleCop簽入政策無法簽入代碼,因此我對如何解決此問題感到有些困惑! 還有這個

作為參考,這是導致問題的方法-我懷疑在聲明中使用可為空的值可能是問題。

編輯:我正在使用StyleCop v4.4.1.2

編輯:如果我刪除IEnumerable <int? >選擇,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)));
}

確定,如果在導致問題的參數中似乎使用了可為空的類型。

只需使用4.4.1.2檢查您的示例,即可正常工作。

您確定您的入住政策使用4.4.1.2嗎? 它運行在服務器上,而不是在本地計算機上運行-因此您可能已安裝了StyleCop 4.4.1.2,但服務器使用了其他版本。

以前的StyleCop版本(例如4.4.0.14)確實存在一些與可選參數有關的錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM