CA2121: I costruttori statici devono essere privati
TypeName |
StaticConstructorsShouldBePrivate |
CheckId |
CA2121 |
Category |
Microsoft.Security |
Breaking Change |
Breaking |
Causa
Un tipo presenta un costruttore statico non privato.
Descrizione della regola
Un costruttore statico, noto anche come costruttore di classe, viene utilizzato per inizializzare un tipo.Il costruttore statico viene chiamato prima che venga creata la prima istanza del tipo o venga fatto riferimento a qualsiasi membro statico.L'utente non dispone di alcun controllo quando viene chiamato il costruttore statico.Se un costruttore statico non è privato, può essere chiamato da codice esterno al sistema.A seconda delle operazioni eseguite nel costruttore, questa situazione può causare comportamenti imprevisti.
Questa regola è applicata dai compilatori C# e Visual Basic .NET.
Come correggere le violazioni
Le violazioni sono in genere causate da una delle seguenti azioni:
Si è definito un costruttore statico per il tipo e non lo si è reso privato.
Il compilatore del linguaggio di programmazione ha aggiunto un costruttore statico predefinito al tipo e non lo ha reso privato.
Per correggere il primo tipo di violazione, rendere privato il costruttore statico.Per correggere il secondo tipo, aggiungere un costruttore statico privato al tipo.
Esclusione di avvisi
Non escludere queste violazioni.Se la progettazione del software richiede una chiamata esplicita a un costruttore statico, è probabile che la progettazione contenga gravi difetti e debba essere rivista.