CA2221: Debe proteger los finalizadores
TypeName |
FinalizersShouldBeProtected |
Identificador de comprobación |
CA2221 |
Categoría |
Microsoft.Usage |
Cambio problemático |
No |
Motivo
Un tipo público implementa un finalizador que no especifica el acceso de familia (protegido).
Descripción de la regla
Los finalizadores deben utilizar el modificador de acceso de familia.Los compiladores de C#, Visual Basic y C++ fuerzan esta regla.
Cómo corregir infracciones
Para corregir una infracción de esta regla, cambie el finalizador para que las familias sean accesibles.
Cuándo suprimir advertencias
No suprima las advertencias de esta regla.
Ejemplo
Esta regla no se puede infringir en cualquier lenguaje de .NET de alto nivel; se puede infringir si está escribiendo con lenguaje intermedio de Microsoft.
// =============== CLASS MEMBERS DECLARATION ===================
// note that class flags, 'extends' and 'implements' clauses
// are provided here for information only
.namespace UsageLibrary
{
.class public auto ansi beforefieldinit FinalizeMethodNotProtected
extends [mscorlib]System.Object
{
.method public hidebysig instance void
Finalize() cil managed
{
// Code size 1 (0x1)
.maxstack 0
IL_0000: ret
} // end of method FinalizeMethodNotProtected::Finalize
.method public hidebysig specialname rtspecialname
instance void .ctor() cil managed
{
// Code size 7 (0x7)
.maxstack 1
IL_0000: ldarg.0
IL_0001: call instance void [mscorlib]System.Object::.ctor()
IL_0006: ret
} // end of method FinalizeMethodNotProtected::.ctor
} // end of class FinalizeMethodNotProtected
} // end of namespace