Предотвращение множественных сообщений об одном и том же нарушении правил в FxCop - Что такое Id?
В настоящее время FxCop сообщает об одном и том же нарушении правила для определенного метода - у него есть два выходных параметра, потому что я хочу вернуть вызывающему объекту два значения без создания структуры для него. Интересно, решат ли мою проблему анонимные типы, но я не знал о них в то время, когда писал метод.
Во всяком случае, я получаю CheckId CA1021 сообщается один раз для каждого параметра. Я скопировал текст SuppressMessage из FxCop, а затем понял, что Id для каждого сообщения отличается! Мне кажется, вам нужен только CheckId, так что...
- для чего используется идентификатор? Я не смог найти информацию об этом в Интернете.
- Id останется прежним? Я полагаю, что или SuppressMessage не будет работать так, как хотелось бы
- Есть ли способ указать атрибут SuppressMessage, чтобы он подавлял все идентификаторы?
1 ответ
Из Подавления Источник Обзор Обзор
Атрибуты могут применяться только к методу и не могут быть встроены в тело метода. Однако вы можете указать идентификатор в качестве идентификатора сообщения, чтобы различать многочисленные случаи нарушения в методе.
Другими словами: MessageId используется для подавления одного экземпляра ошибки в пределах области действия; это удобно, если вы беспокоитесь о том, чтобы случайно снова ввести ошибку в том же методе, и хотите отловить это новое введение с помощью FxCop (или если вы хотите указать разные обоснования для каждого случая возникновения проблемы). Если вы не боитесь вводить больше этих ошибок (или вас это не волнует), и у вас есть такое же оправдание, вы можете просто пропустить MessageId в выражении Suppress: [SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]
,