Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Правила качества кода имеют дополнительные параметры конфигурации помимо настройки серьезности. Например, каждый анализатор качества кода можно применять только к отдельным частям базы кода. Эти параметры задаются в формате пар "ключ — значение" в том же файле EditorConfig, где и уровни серьезности для правил и общие параметры редактора.
Примечание.
В этой статье нет сведений о настройке серьезности правила. Параметр
dotnet_diagnostic.<rule ID>.severity = <severity value>
Однако подробные сведения о настройке серьезности правил см . на уровне серьезности.
Области параметров
Каждый параметр уточнения можно задать для всех правил, для определенной категории (например, безопасности или проектирования) или для конкретного правила.
Все правила
Следующий синтаксис позволяет применить параметр для всех правил:
Синтаксис | Пример |
---|---|
dotnet_code_quality.<OptionName> = <OptionValue> | dotnet_code_quality.api_surface = public |
Значения для <OptionName>
указаны в разделе Параметры.
Категория правил
Следующий синтаксис позволяет применить параметр для одной категории правил:
Синтаксис | Пример |
---|---|
dotnet_code_quality.<RuleCategory>.<OptionName> = OptionValue | dotnet_code_quality.Naming.api_surface = public |
В следующей таблице перечислены доступные значения для <RuleCategory>
.
Design
Documentation
Globalization
Interoperability
Maintainability
Naming
Performance
SingleFile
Reliability
Security
Usage
Конкретное правило
Следующий синтаксис позволяет применить параметр для конкретного правила:
Синтаксис | Пример |
---|---|
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Параметры
В этом разделе перечислены доступные параметры конфигурации для анализаторов кода. Дополнительные сведения см. в конфигурации анализатора.
- дополнительные_перечисления_без_имен
- дополнительные_исключенные_именя_символов_наследования
- дополнительные необходимые универсальные интерфейсы
- дополнительные_обязательные_суффиксы
- дополнительные_методы_использования_результатов
- дополнительные_методы_форматирования_строк
- разрешенные_суффиксы
- анализируемые_виды_символов
- api_surface
- предположить_метод_перечисляет_параметры
- параметры анализа потока данных
- запрещённые_имена_символов
- включить_анализатор_платформы_на_целевых_версиях_до_net5
- enum_values_prefix_trigger
- методы_перечисления
- exclude_aspnet_core_mvc_controllerbase
- исключить_косвенные_базовые_типы
- исключить_структуры
- исключить async void методы
- исключить_параметр_этого_метода_расширения
- исключить_или_методы_по_умолчанию
- исключить_односимвольные_параметры_типа
- исключенные_имена_символов
- исключенные_имена_типов_с_производными_типами
- ignore_internalsvisibleto
- linq_chain_methods
- методы_проверки_нуль
- вид_вывода
- указания_на_тип_анализа
- обязательные модификаторы
- попробуйте_определить_дополнительные_методы_форматирования_строк_автоматически
- unsafe_DllImportSearchPath_bits
- use_naming_heuristic
api_поверхность
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Какая часть поверхности API будет анализироваться |
public (применяется к public и protected API)internal или friend (применяется к internal API и private protected api)private (применимо к private API)all (применяется ко всем API)Для разделения значений используйте запятые (,) |
public |
CA1000 CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027 CA1028 CA1030 CA1030CA1036CA1040CA1041 CA1043CA1044CA1045CA1046 CA1047 CA1051 CA1052 CA1054 CA1055 CA1056 CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716 CA1716CA1717CA1720CA1721CA1725CA1801CA1802 CA1815CA1819CA1822CA1859 CA2208CA2217CA22225CA2226CA2231CA2234 |
исключить асинхронные методы, возвращающие void
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Нужно ли игнорировать асинхронные методы, которые не возвращают значений | true false |
false |
CA2007 |
Примечание.
Этот параметр именовался skip_async_void_methods
в более ранней версии.
исключить_однобуквенные_параметры_типа
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Нужно ли исключать из правила односимвольные параметры типа, как например S в Collection<S> |
true false |
false |
CA1715 |
Примечание.
Этот параметр именовался allow_single_letter_type_parameters
в более ранней версии.
тип_вывода
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает, что нужно анализировать код в проекте, который создает сборку указанного типа | Одно или несколько полей перечисления OutputKind Для разделения значений используйте запятые (,) |
Все типы выходных данных | CA1515CA2007 |
требуемые_модификаторы
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает обязательные модификаторы для API, которые нужно анализировать | Одно или несколько значений из приведенной ниже таблицы допустимых модификаторов Для разделения значений используйте запятые (,) |
Зависит от конкретного правила | CA1802 |
Допустимый модификатор | Итоги |
---|---|
none |
Нет требований к модификатору |
static или Shared |
Должен быть объявлен как static (или Shared в Visual Basic) |
const |
Должен быть объявлен как const |
readonly |
Должен быть объявлен как readonly |
abstract |
Должен быть объявлен как abstract |
virtual |
Должен быть объявлен как virtual |
override |
Должен быть объявлен как override |
sealed |
Должен быть объявлен как sealed |
extern |
Должен быть объявлен как extern |
async |
Должен быть объявлен как async |
исключить параметр this для метода расширения
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Нужно ли пропускать анализ для параметра this в методах расширения |
true false |
false |
CA1062 |
методы проверки и валидации null
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Имена методов проверки на значение NULL, которые проверяют отсутствие значений NULL в аргументах, передаваемых в метод | Форматы имен разрешенных методов (разделенные |): — только имя метода (включает все методы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа с необязательным префиксом M: . |
нет | CA1062 |
дополнительные методы форматирования строк
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Имена дополнительных методов форматирования строк | Форматы имен разрешенных методов (разделенные |): — только имя метода (включает все методы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа с необязательным префиксом M: . |
нет | CA2241 |
исключенные_названия_типа_с_производными_типами
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Имена типов (включая все производные типы), исключаемых из анализа | Допустимые форматы имен символов (разделенные |): — только имя типа (включает все типы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа с необязательным префиксом T: . |
нет | CA1001CA1054CA1055 CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311 CA2312CA2321CA2322 CA2327CA2328CA2329CA2330 CA3001 CA3002CA3003 CA3004CA3005 CA3006CA3007CA3008CA3009CA3010CA3011 CA3012CA5361CA5376CA5377 CA5377CA5378 CA5380CA5381CA5382CA5383 CA5384CA5387 CA5388 CA5389 CA5390CA5399 CA5399CA5400 |
имена_исключённых_символов
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Имена символов, исключаемых из анализа | Допустимые форматы имен символов (разделенные |): — только имя символа (включает все символы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа. Для каждого имени символа требуется префикс вида символа, например префикс M: для методов, префикс T: для типов и префикс N: для пространств имен.- .ctor используется для конструкторов, а .cctor — для статических конструкторов |
нет | CA1001CA1054CA1055 CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311 CA2312CA2321CA2322 CA2327CA2328CA2329CA2330 CA3001 CA3002CA3003 CA3004CA3005 CA3006CA3007CA3008CA3009CA3010CA3011 CA3012CA5361CA5376CA5377 CA5377CA5378 CA5380CA5381CA5382CA5383 CA5384CA5387 CA5388 CA5389 CA5390CA5399 CA5399CA5400 |
неразрешенные_имена_символов
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Имена символов, запрещенных в контексте анализа | Допустимые форматы имен символов (разделенные |): — только имя символа (включает все символы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа. Для каждого имени символа требуется префикс вида символа, например префикс M: для методов, префикс T: для типов и префикс N: для пространств имен.- .ctor используется для конструкторов, а .cctor — для статических конструкторов |
нет | CA1031 |
исключить_или_методы_по_умолчанию
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
FirstOrDefault Исключает и LastOrDefault методы из анализа. |
true или false |
false |
CA1826 |
ignore_internalsvisibleto
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Включает сборки, InternalsVisibleToAttribute помеченные в анализе. |
true или false |
true |
CA1812CA1852 |
попробовать_определить_дополнительные_методы_форматирования_строки_автоматически
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Логический параметр для включения эвристического обнаружения дополнительных методов форматирования строк. Метод считается методом форматирования строк, если он имеет string format параметр, за которым следует params object[] параметр. |
true или false |
false |
CA2241 |
небезопасный_DllImportSearchPath_части
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Настройка небезопасного значения DllImportSearchPath для анализа |
Целочисленные значения System.Runtime.InteropServices.DllImportSearchPath |
770 (т. AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory е. ) |
CA5393 |
exclude_aspnet_core_mvc_controllerbase
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Исключение ASP.NET Core MVC ControllerBase при рассмотрении CSRF |
true или false |
true |
CA5391 |
Префикс значений перечисления триггера
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Задает пороговое значение для активации правила именования значений перечисления |
-
AnyEnumValue — правило активируется, если любое из значений перечисления начинается с имени типа перечисления.
- AllEnumValues — правило активируется, если все значения перечисления начинаются с имени типа перечисления.
- Heuristic — Правило активируется с помощью эвристики FxCop по умолчанию (то есть, если не менее 75% значений перечисления начинаются с имени типа перечисления). |
Heuristic |
CA1712 |
исключить_косвенные_базовые_типы
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Исключить косвенные базовые типы |
true или false |
true |
CA1710 |
дополнительные_требуемые_суффиксы
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает дополнительные необходимые суффиксы | Список имен типов (разделенных |) с обязательным суффиксом (разделенным).-> Форматы имен разрешенного типа:— только имя типа (включает все типы с именем, независимо от содержащего типа или пространства имен). — Полные имена в формате идентификатора документации символа с необязательным T: префиксом. |
нет | CA1710 |
дополнительные_требуемые_общие_интерфейсы
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает дополнительные обязательные универсальные интерфейсы | Список имен интерфейсов (разделенных |) с обязательным универсальным полным интерфейсом (разделенным).-> Допустимые форматы интерфейса:— только имя интерфейса (включает все интерфейсы с именем, независимо от типа или пространства имен). — Полные имена в формате идентификатора документации символа с необязательным T: префиксом. |
нет | CA1010 |
Примеры:
Значение параметра | Итоги |
---|---|
dotnet_code_quality.CA1010.additional_required_generic_interfaces = ISomething->System.Collections.Generic.IEnumerable`1 |
Все типы, реализующие ISomething независимо от его пространства имен, должны также реализовываться System.Collections.Generic.IEnumerable\`1 . |
dotnet_code_quality.CA1010.additional_required_generic_interfaces = T:System.Collections.IDictionary->T:System.Collections.Generic.IDictionary`2 |
Ожидается, что все типы, реализующие System.Collections.IDictionary , также будут реализованы System.Collections.Generic.IDictionary`2 . |
дополнительные_унаследованные_исключенные_именования_символов
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает типы или пространства имен, которые следует исключить из дерева иерархии наследования | Форматы имен разрешенного типа: — имя типа или пространства имен (включает все типы с именем, независимо от содержащего типа или пространства имен, а также всех типов, пространство имен которых содержит имя). — Имя типа или пространства имен, заканчивающееся подстановочным знаком (включает все типы, имя которых начинается с заданного имени, независимо от содержащего типа или пространства имен, и всех типов, пространство имен которых содержит имя). — Полные имена в формате идентификатора документации символа с необязательным T: префиксом для типов или N: префиксов для пространств имен.
— Полный тип или имя пространства имен с необязательным T: префиксом типа или N: префикса для пространства имен и заканчивая символом подстановочного знака (включает все типы, полное имя которого начинается с заданного имени типа, или все типы, полное имя которого начинается с заданного имени пространства имен). |
N:System.* (Это значение всегда автоматически добавляется в указанное значение) |
CA1501 |
анализируемые_типы_символов
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает типы символов для анализа | Одно или несколько полей в виде разделенного запятыми SymbolKind списка. | Namespace, NamedType, Method, Property, Event, Parameter |
CA1716 |
использовать_эвристику_наименования
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Определяет, содержатся ли параметры или имена свойств, содержащие Text , Message или Caption активировать это правило. |
true или false |
false |
CA1303 |
дополнительные_методы_использования_результатов
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает дополнительные пользовательские API, результаты которых должны использоваться | Имена дополнительных методов (разделенные |). Форматы разрешенных имен метода: — только имя метода (включает все методы с именем, независимо от содержащего типа или пространства имен). — Полные имена в формате идентификатора документации символа с необязательным M: префиксом. |
нет | CA1806 |
разрешённые_суффиксы
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает допустимые суффиксы | Список (разделенный |) разрешенных суффиксов. | нет | CA1711 |
включить_анализатор_ платформы_на_целевом_объекте_до_net5
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает, следует ли включить анализ для TFM до .NET 5 |
true или false |
false |
CA1416 |
исключить_структуры
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает, следует ли исключить структуры из анализа |
true или false |
false |
CA1051 |
дополнительные_перечисления_без_имен
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Задает дополнительные допустимые имена для поля перечисления нулевого значения | Список дополнительных имен (разделенных |). | нет | CA1008 |
методы_перечисления
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает дополнительные пользовательские методы, перечисляющие IEnumerable | Полные имена дополнительных методов (разделенные |). | нет | CA1851 |
Методы связанные в цепочку LINQ
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает дополнительные настраиваемые методы LINQ chain (т. е. методы принимают IEnumerable аргумент и возвращают новый IEnumerable экземпляр). |
Полные имена дополнительных методов (разделенные |). | нет | CA1851 |
assume( ) метод перечисляет параметры
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает, следует ли предполагать, что настраиваемые методы перечисляют их IEnumerable параметры |
true или false |
false |
CA1851 |
Параметры анализа потока данных
Параметры в этом разделе настраивают правила анализа потока данных. Доступные параметры:
- вид_анализа_утилизации
- dispose_перенос_прав_собственности_в_конструкторе
- передача_владения_при_вызове_метода
- вид межпроцедурного анализа
- макс_межпроцедурная_цепочка_вызовов_лямбды_или_локальной_функции
- максимальная цепочка вызовов межпроцедурных методов
- анализ_копирования
- достаточное_число_итераций_для_слабого_алгоритма_KDF
Дополнительные сведения об анализе потока данных см. в разработке анализаторов на основе анализа потока данных.
вид_анализ_удаления
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает, какие пути для анализа для удаления нарушений |
-
AllPaths — отслеживайте и сообщайте о отсутствующих нарушениях по всем путям (не исключениям и путям исключений). Кроме того, также помечайте использование нерекоменционных шаблонов удаления, которые могут вызвать потенциальные утечки удаления.
- AllPathsOnlyNotDisposed — отслеживайте и сообщайте о отсутствующих нарушениях по всем путям (не исключениям и путям исключений). Не отмечайте использование нерекоменционных шаблонов удаления, которые могут вызвать потенциальные утечки удаления.
- NonExceptionPaths — отслеживайте и сообщайте о отсутствующих нарушениях только в путях программы, отличных от исключений. Кроме того, также помечайте использование нерекоменционных шаблонов удаления, которые могут вызвать потенциальные утечки удаления.
- NonExceptionPathsOnlyNotDisposed — отслеживайте и сообщайте о отсутствующих нарушениях только в путях программы, отличных от исключений. Не отмечайте использование нерекоменционных шаблонов удаления, которые могут вызвать потенциальные утечки удаления. |
NonExceptionPaths |
CA2000 |
передача_владения_при_создании_конструктора
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Настройка передачи права владения для аргументов, переданных в вызов конструктора |
true или false |
false |
CA2000 |
освобождение_передача_владения_при_вызове_метода
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Настройка передачи права владения для удаленных объектов, переданных в качестве аргументов в вызовы методов |
true или false |
false |
CA2000 |
тип межпроцедурного анализа
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает, следует ли выполнять межпросходный анализ для вызовов метода источника |
None , , NonContextSensitive ContextSensitive |
Для каждого настраиваемого правила | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
макс_межпроцедурная_цепочка_вызовов_методов
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает максимальную длину цепочки вызовов методов для межпроцедурного анализа потоков данных. | Целое число без знака | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
максимальная_межпроцедурная_цепочка_вызовов_лямбда-выражений_или_локальных_функций
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает максимальную длину лямбда-или локальной цепочки вызовов функций для анализа межпроцедального анализа потока данных | Целое число без знака | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
тип_анализа_направления
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает, следует ли выполнять PointsToAnalysis |
None , , PartialWithoutTrackingFieldsAndProperties Complete |
Для каждого правила | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
анализ копии
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Указывает, следует ли выполнять анализ копирования (отслеживает значения и ссылочные копии) |
true или false |
true для большинства правил |
CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
sufficient_IterationCount_for_weak_KDF_алгоритм
Описание | Допустимые значения | Значение по умолчанию | Настраиваемые правила |
---|---|---|---|
Настраивает достаточное количество итерации при использовании алгоритма слабой функции извлечения ключей (KDF) | Целое число | 100000 для большинства правил | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |