StyleCop / Ошибка анализа кода - Как подавить - PullRequest
1 голос
/ 28 февраля 2011

Я получаю в SA0102 («Обнаружена синтаксическая ошибка в файле»), возникающая при запуске анализа кода при регистрации (еще одна странная проблема, так как я думал, что SA была проблемой StyleCop ?!).В процессе добавления / удаления кода я пришел к выводу, что следующий метод вызывает эту ошибку.Насколько мне известно, этот метод действителен и основан на комментариях других - похоже, в StyleCop есть некоторые ошибки, связанные с этим правилом.

В любом случае, мой вопрос: как я могу подавить это предупреждение?Я попытался изменить имя файла на .designer.cs, однако это, кажется, не имеет никакого эффекта (я удостоверился, что игнорируются файлы дизайнера, проверено).Я немного растерялся из-за того, как я могу решить эту проблему, так как я не могу зарегистрировать код без прохождения политики регистрации StyleCop!Кроме того, это

Для справки, это метод, вызывающий проблему - я подозреваю, что использование обнуляемых значений в объявлении может быть проблемой.

Редактировать: я использую StyleCop v4.4.1.2

Редактировать: Если я удалю IEnumerable <int?> выбранный, int?page = ноль из параметров, правило проходит.

[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 ]

1 голос
/ 28 февраля 2011

ОК, если кажется, что в параметре, вызывающем проблему, используется обнуляемые типы.

0 голосов
/ 28 февраля 2011

Только что проверил ваш пример с 4.4.1.2, и он отлично работает.

Вы уверены, что ваша политика регистрации использует 4.4.1.2?Он работает на сервере, а не на вашем локальном компьютере - поэтому вы можете установить StyleCop 4.4.1.2, но сервер использует другую версию.

Предыдущие версии StyleCop (например, 4.4.0.14) имели несколько парошибки, связанные с необязательными параметрами, действительно.

...