Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Правила качества кода имеют дополнительные параметры конфигурации помимо настройки серьезности. Например, каждый анализатор качества кода можно применять только к отдельным частям базы кода. Эти параметры задаются в формате пар "ключ — значение" в том же файле EditorConfig, где и уровни серьезности для правил и общие параметры редактора.
Note
В этой статье нет сведений о настройке серьезности правила. Параметр
dotnet_diagnostic.<rule ID>.severity = <severity value>
Однако подробные сведения о настройке серьезности правил см . на уровне серьезности.
Option scopes
Каждый параметр уточнения можно задать для всех правил, для определенной категории (например, безопасности или проектирования) или для конкретного правила.
All rules
Следующий синтаксис позволяет применить параметр для всех правил:
Syntax | Example |
---|---|
dotnet_code_quality.<OptionName> = <OptionValue> | dotnet_code_quality.api_surface = public |
Значения для <OptionName>
указаны в разделе Параметры.
Категория правил
Следующий синтаксис позволяет применить параметр для одной категории правил:
Syntax | Example |
---|---|
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
Specific rule
Следующий синтаксис позволяет применить параметр для конкретного правила:
Syntax | Example |
---|---|
dotnet_code_quality.<RuleId>.<OptionName> = <OptionValue> | dotnet_code_quality.CA1040.api_surface = public |
Options
В этом разделе перечислены доступные параметры конфигурации для анализаторов кода. Дополнительные сведения см. в конфигурации анализатора.
- additional_enum_none_names
- additional_inheritance_excluded_symbol_names
- additional_required_generic_interfaces
- additional_required_suffixes
- additional_use_results_methods
- additional_string_formatting_methods
- allowed_suffixes
- analyzed_symbol_kinds
- api_surface
- assume_method_enumerates_parameters
- параметры анализа потока данных
- disallowed_symbol_names
- enable_platform_analyzer_on_pre_net5_target
- enum_values_prefix_trigger
- enumeration_methods
- exclude_aspnet_core_mvc_controllerbase
- exclude_indirect_base_types
- exclude_structs
- exclude_async_void_methods
- exclude_extension_method_this_parameter
- exclude_ordefault_methods
- exclude_single_letter_type_parameters
- excluded_symbol_names
- excluded_type_names_with_derived_types
- ignore_internalsvisibleto
- linq_chain_methods
- null_check_validation_methods
- output_kind
- points_to_analysis_kind
- required_modifiers
- try_determine_additional_string_formatting_methods_automatically
- unsafe_DllImportSearchPath_bits
- use_naming_heuristic
api_surface
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Какая часть поверхности API будет анализироваться |
public (применяется к public и protected API)internal или friend (применяется к internal API и private protected api)private (применимо к private API)all (применяется ко всем API)Для разделения значений используйте запятые (,) |
public |
CA1000CA1002CA1003CA1005CA1008CA1010CA1012CA1021CA1024CA1027CA1028CA1030CA1036CA1040CA1041CA1043CA1044CA1045CA1046CA1047CA1051CA1052CA1054CA1055CA1056CA1058CA1062CA1063CA1068CA1070CA1700CA1707CA1708CA1710CA1711CA1714CA1715CA1716CA1717CA1720CA1721CA1725CA1801CA1802CA1815CA1819CA1822CA1859CA2208CA2217CA2225CA2226CA2231CA2234 |
exclude_async_void_methods
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Нужно ли игнорировать асинхронные методы, которые не возвращают значений | true false |
false |
CA2007 |
Note
Этот параметр именовался skip_async_void_methods
в более ранней версии.
exclude_single_letter_type_parameters
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Нужно ли исключать из правила односимвольные параметры типа, как например S в Collection<S> |
true false |
false |
CA1715 |
Note
Этот параметр именовался allow_single_letter_type_parameters
в более ранней версии.
output_kind
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает, что нужно анализировать код в проекте, который создает сборку указанного типа | Одно или несколько полей перечисления OutputKind Для разделения значений используйте запятые (,) |
Все типы выходных данных | CA1515, CA1516, CA2007 |
required_modifiers
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает обязательные модификаторы для API, которые нужно анализировать | Одно или несколько значений из приведенной ниже таблицы допустимых модификаторов Для разделения значений используйте запятые (,) |
Зависит от конкретного правила | CA1802 |
Allowed Modifier | Summary |
---|---|
none |
Нет требований к модификатору |
static или Shared |
Должен быть объявлен как static (или Shared в Visual Basic) |
const |
Должен быть объявлен как const |
readonly |
Должен быть объявлен как readonly |
abstract |
Должен быть объявлен как abstract |
virtual |
Должен быть объявлен как virtual |
override |
Должен быть объявлен как override |
sealed |
Должен быть объявлен как sealed |
extern |
Должен быть объявлен как extern |
async |
Должен быть объявлен как async |
exclude_extension_method_this_parameter
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Нужно ли пропускать анализ для параметра this в методах расширения |
true false |
false |
CA1062 |
null_check_validation_methods
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Имена методов проверки на значение NULL, которые проверяют отсутствие значений NULL в аргументах, передаваемых в метод | Форматы имен разрешенных методов (разделенные |): — только имя метода (включает все методы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа с необязательным префиксом M: . |
None | CA1062 |
additional_string_formatting_methods
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Имена дополнительных методов форматирования строк | Форматы имен разрешенных методов (разделенные |): — только имя метода (включает все методы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа с необязательным префиксом M: . |
None | CA2241 |
excluded_type_names_with_derived_types
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Имена типов (включая все производные типы), исключаемых из анализа | Допустимые форматы имен символов (разделенные |): — только имя типа (включает все типы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа с необязательным префиксом T: . |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
excluded_symbol_names
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Имена символов, исключаемых из анализа | Допустимые форматы имен символов (разделенные |): — только имя символа (включает все символы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа. Для каждого имени символа требуется префикс вида символа, например префикс M: для методов, префикс T: для типов и префикс N: для пространств имен.- .ctor используется для конструкторов, а .cctor — для статических конструкторов |
None | CA1001CA1054CA1055CA1056CA1062CA1068CA1303CA1304CA1305CA1508CA2000CA2100CA2301CA2302CA2311CA2312CA2321CA2322CA2327CA2328CA2329CA2330CA3001CA3002CA3003CA3004CA3005CA3006CA3007CA3008CA3009CA3010CA3011CA3012CA5361CA5376CA5377CA5378CA5380CA5381CA5382CA5383CA5384CA5387CA5388CA5389CA5390CA5399CA5400 |
disallowed_symbol_names
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Имена символов, запрещенных в контексте анализа | Допустимые форматы имен символов (разделенные |): — только имя символа (включает все символы с этим именем, любого типа и в любом пространстве имен); — полные имена в формате идентификатора документации для символа. Для каждого имени символа требуется префикс вида символа, например префикс M: для методов, префикс T: для типов и префикс N: для пространств имен.- .ctor используется для конструкторов, а .cctor — для статических конструкторов |
None | CA1031 |
exclude_ordefault_methods
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
FirstOrDefault Исключает и LastOrDefault методы из анализа. |
true или false |
false |
CA1826 |
ignore_internalsvisibleto
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Включает сборки, InternalsVisibleToAttribute помеченные в анализе. |
true или false |
true |
CA1812CA1852 |
try_determine_additional_string_formatting_methods_automatically
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Логический параметр для включения эвристического обнаружения дополнительных методов форматирования строк. Метод считается методом форматирования строк, если он имеет string format параметр, за которым следует params object[] параметр. |
true или false |
false |
CA2241 |
unsafe_DllImportSearchPath_bits
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Настройка небезопасного значения DllImportSearchPath для анализа |
Целочисленные значения System.Runtime.InteropServices.DllImportSearchPath |
770 (т. AssemblyDirectory | UseDllDirectoryForDependencies | ApplicationDirectory е. ) |
CA5393 |
exclude_aspnet_core_mvc_controllerbase
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Исключение ASP.NET Core MVC ControllerBase при рассмотрении CSRF |
true или false |
true |
CA5391 |
enum_values_prefix_trigger
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Задает пороговое значение для активации правила именования значений перечисления |
-
AnyEnumValue — правило активируется, если любое из значений перечисления начинается с имени типа перечисления.
- AllEnumValues — правило активируется, если все значения перечисления начинаются с имени типа перечисления.
- Heuristic — Правило активируется с помощью эвристики FxCop по умолчанию (то есть, если не менее 75% значений перечисления начинаются с имени типа перечисления). |
Heuristic |
CA1712 |
exclude_indirect_base_types
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Исключить косвенные базовые типы |
true или false |
true |
CA1710 |
additional_required_suffixes
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает дополнительные необходимые суффиксы | Список имен типов (разделенных |) с обязательным суффиксом (разделенным).-> Форматы имен разрешенного типа:— только имя типа (включает все типы с именем, независимо от содержащего типа или пространства имен). — Полные имена в формате идентификатора документации символа с необязательным T: префиксом. |
None | CA1710 |
additional_required_generic_interfaces
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает дополнительные обязательные универсальные интерфейсы | Список имен интерфейсов (разделенных |) с обязательным универсальным полным интерфейсом (разделенным).-> Допустимые форматы интерфейса:— только имя интерфейса (включает все интерфейсы с именем, независимо от типа или пространства имен). — Полные имена в формате идентификатора документации символа с необязательным T: префиксом. |
None | CA1010 |
Examples:
Option Value | Summary |
---|---|
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 . |
additional_inheritance_excluded_symbol_names
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает типы или пространства имен, которые следует исключить из дерева иерархии наследования | Форматы имен разрешенного типа: — имя типа или пространства имен (включает все типы с именем, независимо от содержащего типа или пространства имен, а также всех типов, пространство имен которых содержит имя). — Имя типа или пространства имен, заканчивающееся подстановочным знаком (включает все типы, имя которых начинается с заданного имени, независимо от содержащего типа или пространства имен, и всех типов, пространство имен которых содержит имя). — Полные имена в формате идентификатора документации символа с необязательным T: префиксом для типов или N: префиксов для пространств имен.
— Полный тип или имя пространства имен с необязательным T: префиксом типа или N: префикса для пространства имен и заканчивая символом подстановочного знака (включает все типы, полное имя которого начинается с заданного имени типа, или все типы, полное имя которого начинается с заданного имени пространства имен). |
N:System.* (Это значение всегда автоматически добавляется в указанное значение) |
CA1501 |
analyzed_symbol_kinds
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает типы символов для анализа | Одно или несколько полей в виде разделенного запятыми SymbolKind списка. | Namespace, NamedType, Method, Property, Event, Parameter |
CA1716 |
use_naming_heuristic
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Определяет, содержатся ли параметры или имена свойств, содержащие Text , Message или Caption активировать это правило. |
true или false |
false |
CA1303 |
additional_use_results_methods
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает дополнительные пользовательские API, результаты которых должны использоваться | Имена дополнительных методов (разделенные |). Форматы разрешенных имен метода: — только имя метода (включает все методы с именем, независимо от содержащего типа или пространства имен). — Полные имена в формате идентификатора документации символа с необязательным M: префиксом. |
None | CA1806 |
allowed_suffixes
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает допустимые суффиксы | Список (разделенный |) разрешенных суффиксов. | None | CA1711 |
enable_platform_analyzer_on_pre_net5_target
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает, следует ли включить анализ для TFM до .NET 5 |
true или false |
false |
CA1416 |
exclude_structs
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает, следует ли исключить структуры из анализа |
true или false |
false |
CA1051 |
additional_enum_none_names
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Задает дополнительные допустимые имена для поля перечисления нулевого значения | Список дополнительных имен (разделенных |). | None | CA1008 |
enumeration_methods
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает дополнительные пользовательские методы, перечисляющие IEnumerable | Полные имена дополнительных методов (разделенные |). | None | CA1851 |
linq_chain_methods
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает дополнительные настраиваемые методы LINQ chain (т. е. методы принимают IEnumerable аргумент и возвращают новый IEnumerable экземпляр). |
Полные имена дополнительных методов (разделенные |). | None | CA1851 |
assume_method_enumerates_parameters
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает, следует ли предполагать, что настраиваемые методы перечисляют их IEnumerable параметры |
true или false |
false |
CA1851 |
Параметры анализа потока данных
Параметры в этом разделе настраивают правила анализа потока данных. Доступные параметры:
- dispose_analysis_kind
- dispose_ownership_transfer_at_constructor
- dispose_ownership_transfer_at_method_call
- interprocedural_analysis_kind
- max_interprocedural_lambda_or_local_function_call_chain
- max_interprocedural_method_call_chain
- copy_analysis
- sufficient_IterationCount_for_weak_KDF_algorithm
Дополнительные сведения об анализе потока данных см. в разработке анализаторов на основе анализа потока данных.
dispose_analysis_kind
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает, какие пути для анализа для удаления нарушений |
-
AllPaths — отслеживайте и сообщайте о отсутствующих нарушениях по всем путям (не исключениям и путям исключений). Кроме того, также помечайте использование нерекоменционных шаблонов удаления, которые могут вызвать потенциальные утечки удаления.
- AllPathsOnlyNotDisposed — отслеживайте и сообщайте о отсутствующих нарушениях по всем путям (не исключениям и путям исключений). Не отмечайте использование нерекоменционных шаблонов удаления, которые могут вызвать потенциальные утечки удаления.
- NonExceptionPaths — отслеживайте и сообщайте о отсутствующих нарушениях только в путях программы, отличных от исключений. Кроме того, также помечайте использование нерекоменционных шаблонов удаления, которые могут вызвать потенциальные утечки удаления.
- NonExceptionPathsOnlyNotDisposed — отслеживайте и сообщайте о отсутствующих нарушениях только в путях программы, отличных от исключений. Не отмечайте использование нерекоменционных шаблонов удаления, которые могут вызвать потенциальные утечки удаления. |
NonExceptionPaths |
CA2000 |
dispose_ownership_transfer_at_constructor
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Настройка передачи права владения для аргументов, переданных в вызов конструктора |
true или false |
false |
CA2000 |
dispose_ownership_transfer_at_method_call
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Настройка передачи права владения для удаленных объектов, переданных в качестве аргументов в вызовы методов |
true или false |
false |
CA2000 |
interprocedural_analysis_kind
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает, следует ли выполнять межпросходный анализ для вызовов метода источника |
None , , NonContextSensitive ContextSensitive |
Для каждого настраиваемого правила | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
max_interprocedural_method_call_chain
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает максимальную длину цепочки вызовов методов для межпроцедурного анализа потоков данных. | Unsigned integer | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
max_interprocedural_lambda_or_local_function_call_chain
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает максимальную длину лямбда-или локальной цепочки вызовов функций для анализа межпроцедального анализа потока данных | Unsigned integer | 3 | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
points_to_analysis_kind
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает, следует ли выполнять PointsToAnalysis |
None , , PartialWithoutTrackingFieldsAndProperties Complete |
Для каждого правила | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
copy_analysis
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Указывает, следует ли выполнять анализ копирования (отслеживает значения и ссылочные копии) |
true или false |
true для большинства правил |
CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |
sufficient_IterationCount_for_weak_KDF_algorithm
Description | Allowable values | Default value | Configurable rules |
---|---|---|---|
Настраивает достаточное количество итерации при использовании алгоритма слабой функции извлечения ключей (KDF) | Integer | 100000 для большинства правил | CA1062, CA1303, CA1508, CA2000, CA2100, CA2213 |