Partage via


CA2255 : l’attribut ModuleInitializer ne doit pas être utilisé dans les bibliothèques

Propriété Value
Identificateur de la règle CA2255
Titre L’attribut ModuleInitializer ne doit pas être utilisé dans les bibliothèques
Catégorie Utilisation
Le correctif est cassant ou non cassant Sans rupture
Activé par défaut dans .NET 8 À titre d’avertissement

Cause

ModuleInitializerAttribute est appliqué à une méthode dans une bibliothèque de classes.

Description de la règle

Les initialiseurs de module sont destinés à être utilisés par le code d’application pour s’assurer que les composants d’une application sont initialisés avant le début de l’exécution du code de l’application. Si le code de bibliothèque déclare une méthode avec ModuleInitializerAttribute, ce dernier peut interférer avec l’initialisation de l’application et entraîner une limitation des capacités de filtrage de cette application. Le code de bibliothèque ne doit donc pas utiliser l’attribut ModuleInitializerAttribute.

Comment corriger les violations

Au lieu d’utiliser des méthodes marquées de ModuleInitializerAttribute, la bibliothèque doit exposer des méthodes permettant d’initialiser tous ses composants et d’autoriser l’application à appeler la méthode pendant l’initialisation de l’application.

Quand supprimer les avertissements

Vous pouvez sans risque supprimer les avertissements de cette règle si la solution utilise une bibliothèque de classes à des fins de factorisation de code et que la méthode ModuleInitializerAttribute ne fait pas partie d’une bibliothèque ni d’un package partagé ou distribué.

Supprimer un avertissement

Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.

#pragma warning disable CA2255
// The code that's violating the rule is on this line.
#pragma warning restore CA2255

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

[*.{cs,vb}]
dotnet_diagnostic.CA2255.severity = none

Pour désactiver la catégorie entière des règles, définissez la gravité de la catégorie sur none dans le fichier de configuration.

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Usage.severity = none

Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.

Voir aussi