Compartir a través de


CA1410: Los métodos de registro COM se deben adjuntar

Nombre de tipo

ComRegistrationMethodsShouldBeMatched

Identificador de comprobación

CA1410

Categoría

Microsoft.Interoperability

Cambio problemático

Poco problemático

Motivo

Un tipo declara un método marcado con el atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute pero no declara un método marcado con el atributo System.Runtime.InteropServices.ComUnregisterFunctionAttribute, o viceversa.

Descripción de la regla

Para que los clientes del Modelo de objetos componentes (COM) creen un tipo de .NET Framework, primero se debe registrar el tipo.Si está disponible, se llama a un método marcado con el atributo ComRegisterFunctionAttribute durante el proceso del registro para ejecutar código especificado por el usuario.Se llama a un método correspondiente marcado con el atributo ComUnregisterFunctionAttribute durante el proceso del anulación del registro, para invertir las operaciones del método de registro.

Cómo corregir infracciones

Para corregir una infracción de esta regla, agregue el método de registro o anulación de registro correspondiente.

Cuándo suprimir advertencias

No suprima las advertencias de esta regla.

Ejemplo

El siguiente ejemplo muestra un tipo que infringe la regla.El código marcado como comentario muestra la corrección para la infracción.

Imports System
Imports System.Runtime.InteropServices

<Assembly: ComVisibleAttribute(True)>
Namespace InteroperabilityLibrary

   Public Class ClassToRegister
   End Class

   Public Class ComRegistration

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

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

   End Class

End Namespace
using System;
using System.Runtime.InteropServices;

[assembly: ComVisible(true)]
namespace InteroperabilityLibrary
{
   public class ClassToRegister
   {
   }

   public class ComRegistration
   {
      [ComRegisterFunction]
      internal static void RegisterFunction(Type typeToRegister) {}

//      [ComUnregisterFunction]
//      internal static void UnregisterFunction(Type typeToRegister) {}
   }
}

Reglas relacionadas

CA1411: Los métodos de registro COM no deben ser visibles

Vea también

Referencia

Regasm.exe (Herramienta de registro de ensamblados)

System.Runtime.InteropServices.RegistrationServices

Conceptos

Registrar ensamblados con COM