CA2121: Los constructores estáticos deben ser privados
Elemento | Valor |
---|---|
RuleId | CA2121 |
Category | Microsoft.Security |
Cambio importante | Problemático |
Causa
Un tipo tiene un constructor estático que no es privado.
Nota
Esta regla está en desuso. Para más información, consulte Reglas en desuso.
Descripción de la regla
Un constructor estático, también conocido como "constructor de clase", se usa para inicializar un tipo. El sistema llama al constructor estático antes de crear la primera instancia del tipo o antes de hacer referencia a cualquier miembro estático. El usuario no tiene control sobre cuándo se llama al constructor estático. Si un constructor estático no es privado, se puede llamar a través de un código distinto del sistema. En función de las operaciones que se realizan en el constructor, esto puede producir un comportamiento inesperado.
Los compiladores de C# y Visual Basic aplican esta regla.
Cómo corregir infracciones
Las infracciones se suelen producir por una de las acciones siguientes:
Ha definido un constructor estático para el tipo y no lo ha hecho privado.
El compilador de lenguaje de programación ha agregado un constructor estático predeterminado al tipo y no lo ha hecho privado.
Para corregir el primer tipo de infracción, haga que el constructor estático sea privado. Para corregir el segundo tipo, agregue un constructor estático privado al tipo.
Cuándo suprimir las advertencias
No suprima estas infracciones. Si el diseño de software requiere una llamada explícita a un constructor estático, es probable que el diseño contenga errores graves y deba revisarse.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de