2012-03-18 2 views
1

Я запуска нескольких экземпляров SA1623: PropertySummaryDocumentationMustMatchAccessors в моем коде, где я есть свойство, похожее на это:Неправильно ли работает StyleCop SA1623 Trigger Когда у метода есть атрибут?

/// <summary> 
    /// Gets or Sets the location to check for files. 
    /// </summary> 
    [Required] 
    public string SourceDirectory { get; set; } 

Это код используется в MSBuild Custom Task библиотеки и атрибутов в вопросе Microsoft.Build.Framework.RequiredAttribute, если это имеет какое-либо значение.

Я использую StyleCop 4.7.14.0 без каких-либо изменений в правилах по умолчанию. Быстрый поиск журналов StackOverflow, Google и журналов Open Project и документации Project не упоминает об этом quirk, я делаю что-то неправильно, это ошибка?

спасибо.

+4

Являются ли стиль кодов правил чувствительными к регистру? У вас есть «Gets or Sets», но правило говорит, что оно должно быть «Получает или задает» –

+0

Они действительно не могут поверить, что я пропустил это. Вы хотите ответить на вопрос, чтобы я мог принять его в качестве ответа? – aolszowka

+0

Вы можете оставить свой отзыв и отметить его. Кредит Эрв и все будет хорошо. –

ответ

2

Как комментарий Per ERV Уолтера над правилом StyleCop чувствительно к регистру и должно быть точно так, как показано ниже:

/// <summary> 
/// Gets or sets the location to check for files. 
/// </summary> 

Обратите внимание на нижний регистр на множествах

2

у меня была реальная головная боль с этим типом ошибка и не было интуитивно знать, что они на самом деле имел в виду:

Тяжесть Код Описание проекта Строка файла Подавление государство ошибка SA1623: CSharp.Documentation: документация резюме свойства текст должен начинаться с: Получает или задает значение, указывающее, был ли

Я получаю, что и при взгляде на моем коде у меня было хорошо написано, я начал резюме с "Get или наборами ... », но все еще продолжал получать ошибку

После почти сходят с ума, я понял, что это показывает 2 булевых свойств, и то, что они говорили мне, что для булевых свойств я на самом деле писать всю предложение, буквально начинающееся с «Получает или задает значение, указывающее будь то ... » и все, что касается моей собственности.

Например:

/// <summary> /// 
/// Gets or sets a value indicating whether the product is active. 
/// </summary> 
public boolean Active { get; set; } 

Я надеюсь, что это экономит время для других.

+0

У меня просто была эта точная проблема, и этот ответ был спасителем. Благодаря! – PixelPaul

+0

это сработало для меня. У меня уже был «Gets or sets ...», для моего bool, но когда он был изменен на «Получает или задает значение, указывающее, ...», он прошел. Я ненавижу SC. –