При использовании Контрактов Анализа кода и Кода в комбинации я получаю много предупреждений как
CA1062: Microsoft. Дизайн: Во внешне видимом методе 'Нечто. Панель (Журнал)', проверяют параметр 'журнал' перед использованием его.
В Нечто. Панель, у меня есть контракт, который проверяет log
.
public Bar(Log log)
{
Contract.Requires(log != null);
log.Lines.Add(...);
// ...
}
Существует ли способ заставить FxCop понять контракты кода?
Нет I не думаю, что это возможно в текущей сборке, поскольку код, сгенерированный переписчиком контрактов, не создает стандартный шаблон, который ищет FxCop.
Обычно я отключаю это конкретное правило FxCop при использовании контрактов кода. Я считаю, что статический верификатор более чем компенсирует потерю этого правила, поскольку он будет кричать об отсутствии проверки гораздо более агрессивно, чем FxCop. Я бы предложил здесь тот же подход, который решит эту проблему для вас.