Я пытаюсь подавить следующее сообщение StyleCop для определенного свойства:
SA1513: Statements or elements wrapped in curly brackets must be followed by a blank line.
Я пытаюсь сделать следующее, но это, кажется, не работает:
[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1513:ClosingCurlyBracketMustBeFollowedByBlankLine", Justification = "There are no issues with this code")]
public string CustomerId
{
get
{
return this.GetProperty(CustomerIdProperty);
}
set
{
if (this.IsNew)
{
this.SetProperty(CustomerIdProperty, value);
}
else
{
throw new ReadOnlyException("Id value can only be changed for a new record.");
}
}
}
Я просто делаю что-то не так? Или разве это просто не возможно? Это - хорошее правило, просто не действительное в моем случае для свойства.
Обновление
Испытанное переключение от DocumentationRules до LayoutRules... все еще подавление.
[DataObjectField(true, false)]
[SuppressMessage("Microsoft.StyleCop.CSharp.LayoutRules", "SA1513:ClosingCurlyBracketMustBeFollowedByBlankLine", Justification = "There are no issues with this code")]
public string CustomerId
{
get
{
return this.GetProperty(CustomerIdProperty);
}
set
{
if (this.IsNew)
{
this.SetProperty(CustomerIdProperty, value);
}
else
{
throw new ReadOnlyException("Id value can only be changed for a new record.");
}
}
}
Я думаю, что это может быть проблема со StyleCop. Какая версия у вас установлена? На этой странице говорится, что:
Начиная со StyleCop 4.3.2, можно подавить сообщение о нарушениях правил, добавив атрибуты подавления в исходный код.
Я только что обнаружил, что не могу подавить ни одного сообщения. Программа установки, которую я использовал, выдает версию 4.3. Последняя версия на Codeplex - 4.4.0.0. Убедитесь, что у вас установлена именно эта версия.
Обновление
Я провел некоторую проверку и могу подавить DocumentationRules:
[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules",
"SA1600:ElementsMustBeDocumented",
Justification = "Reviewed. Suppression is OK here.")]
но не SpacingRules или LayoutRules. Однако, ничто из найденного мной не указывает на то, почему так должно быть.
Ваше подавление использует Microsoft.StyleCop.CSharp.DocumentationRules
. Думаю, это должен быть Microsoft.StyleCop.CSharp.LayoutRules
.
В StyleCop есть ошибка, которая позволяет подавлять только определенные виды правил. Это будет исправлено в StyleCop 4.4, который должен быть выпущен в ближайшее время.