Partilhar via


CA2121: Construtores estáticos devem ser particulares

Item Valor
RuleId CA2121
Categoria Microsoft.Security
Alteração da falha Quebra

Causa

Um tipo tem um construtor estático que não é privado.

Observação

Esta regra foi preterida. Para obter mais informações, confira Regras preteridas.

Descrição da regra

Um construtor estático, também conhecido como um construtor de classe, é usado para inicializar um tipo. O sistema chama o construtor estático antes que a primeira instância do tipo seja criada ou que outros membros estáticos sejam referenciados. O usuário não tem controle sobre quando o construtor estático é chamado. Se não for privado, um construtor estático poderá ser chamado por um código diferente do sistema. Dependendo das operações realizadas no construtor, isso pode causar um comportamento inesperado.

Essa regra é imposta pelos compiladores C# e Visual Basic.

Como corrigir violações

Violações normalmente são causadas por uma das seguintes ações:

  • Você definiu um construtor estático para seu tipo e não o tornou privado.

  • O compilador de linguagem de programação adicionou um construtor estático padrão ao seu tipo e não o tornou privado.

Para corrigir o primeiro tipo de violação, torne seu construtor estático privado. Para corrigir o segundo tipo, adicione um construtor estático privado ao seu tipo.

Quando suprimir avisos

Não suprima essas violações. Se o design do seu software exigir uma chamada explícita para um construtor estático, é provável que o design contenha falhas graves e deva ser revisado.