CA2121: I costruttori statici devono essere privati

Articolo Valore
ID regola CA2121
Category Microsoft.Security
Modifica Interruzione

Causa

Un tipo ha un costruttore statico che non è privato.

Nota

Questa regola è stata deprecata. Per altre informazioni, vedere Regole deprecate.

Descrizione regola

Un costruttore statico, noto anche come costruttore di classe, viene usato 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 ha alcun controllo su 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 viene applicata dai compilatori C# e Visual Basic.

Come correggere le violazioni

Le violazioni sono in genere causate da una delle azioni seguenti:

  • È stato definito un costruttore statico per il tipo e non è stato privato.

  • Il compilatore del linguaggio di programmazione ha aggiunto un costruttore statico predefinito al tipo e non lo rendeva 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.

Quando eliminare gli avvisi

Non eliminare 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 esaminata.