Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
CA2255:
| Свойство | Значение |
|---|---|
| Идентификатор правила | CA2255 |
| Заголовок | Атрибут ModuleInitializer не должен использоваться в библиотеках |
| Категория | Использование |
| Исправление является критическим или не критическим | неразрывный |
| Включен по умолчанию в .NET 10 | Как предупреждение |
| Применимые языки | C# и Visual Basic |
Причина
Применение ModuleInitializerAttribute к методу в библиотеке классов.
Описание правила
Инициализаторы модулей предназначены для использования кодом приложения, чтобы компоненты приложения были инициализированы до того, как начнется выполнение кода приложения. Если код библиотеки объявляет метод с помощью ModuleInitializerAttribute, он может помешать инициализации приложения, а также привести к ограничениям возможностей обрезки этого приложения. Поэтому код библиотеки не должен использовать атрибут ModuleInitializerAttribute.
Устранение нарушений
Вместо использования методов, помеченных ModuleInitializerAttribute, библиотека должна предоставлять методы, которые можно использовать для инициализации любых её компонентов, и позволять приложению вызывать эти методы во время его инициализации.
Когда лучше отключить предупреждения
Можно отключить вывод предупреждений на основе этого правила, если решение использует библиотеку классов для факторинга кода, а метод ModuleInitializerAttribute не является частью общей или распределенной библиотеки или пакета.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA2255
// The code that's violating the rule is on this line.
#pragma warning restore CA2255
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA2255.severity = none
Чтобы отключить эту всю категорию правил, задайте уровень серьезности для категории none в файле конфигурации.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Usage.severity = none
Дополнительные сведения см. в разделе Практическое руководство. Скрытие предупреждений анализа кода.