CA2121 : Les constructeurs statiques doivent être privés
TypeName |
StaticConstructorsShouldBePrivate |
CheckId |
CA2121 |
Catégorie |
Microsoft.Security |
Modification avec rupture |
Oui |
Cause
Un type dispose d'un constructeur statique qui n'est pas privé.
Description de la règle
Un constructeur statique, également appelé constructeur de classe, est utilisé pour initialiser un type. Le système appelle le constructeur statique avant la création de la première instance du type ou le référencement de tout membre statique. L'utilisateur n'a aucun contrôle sur le moment où le constructeur statique est appelé. Si un constructeur statique n'est pas privé, il peut être appelé par un code autre que le système. Selon les opérations effectuées dans le constructeur, cette possibilité peut provoquer un comportement inattendu.
Cette règle est appliquée par les compilateurs C# et Visual Basic .NET.
Comment corriger les violations
Les violations sont généralement provoquées par l'une des actions suivantes :
Vous avez défini un constructeur statique pour votre type et vous ne l'avez pas rendu privé.
Le compilateur du langage de programmation a ajouté un constructeur statique par défaut à votre type et ne l'a pas rendu privé.
Pour résoudre le premier type de violation, rendez votre constructeur statique privé. Pour résoudre le second type de violation, ajoutez un constructeur statique privé à votre type.
Quand supprimer les avertissements
Ne supprimez pas ces violations. Si votre design logiciel requiert un appel explicite à un constructeur statique, il est probable qu'il présente de sérieux défauts et qu'il doit être révisé.