Leer en inglés

Compartir a través de


Los métodos de registro COM no deben ser visibles

Actualización: noviembre 2007

     TypeName

ComRegistrationMethodsShouldNotBeVisible

Identificador de comprobación

CA1411

Category

Microsoft.Interoperability

Cambio problemático

Motivo

Un método marcado con el atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute o System.Runtime.InteropServices.ComUnregisterFunctionAttribute es visible externamente.

Descripción de la regla

Cuando se registra un ensamblado con COM, se agregan entradas al Registro para cada uno de los tipos visibles para COM del ensamblado. Durante los procesos de registro y anulación de registro se llama a métodos marcados, respectivamente, con los atributos ComRegisterFunctionAttribute y ComUnregisterFunctionAttribute, para ejecutar el código de usuario específico del registro y la anulación de registro de estos tipos. No se debe llamar a este código fuera de estos procesos.

Cómo corregir infracciones

Para corregir una infracción de esta regla, cambie la accesibilidad del método a private o internal (Friend en Visual Basic).

Cuándo suprimir advertencias

No suprima las advertencias de esta regla.

Ejemplo

El siguiente ejemplo muestra dos métodos que infringen la regla.

Imports System
Imports System.Runtime.InteropServices

<Assembly: ComVisibleAttribute(True)>
Namespace InteroperabilityLibrary

   Public Class ClassToRegister
   End Class

   Public Class ComRegistration

      <ComRegisterFunctionAttribute> _ 
      Public Shared Sub RegisterFunction(typeToRegister As Type)
      End Sub

      <ComUnregisterFunctionAttribute> _ 
      Public Shared Sub UnregisterFunction(typeToRegister As Type)
      End Sub

   End Class

End Namespace

Reglas relacionadas

Los métodos de registro COM deben coincidir

Vea también

Conceptos

Registrar ensamblados con COM

Referencia

Herramienta Registro de ensamblados (Regasm.exe)

System.Runtime.InteropServices.RegistrationServices