Compartir a través de


Los métodos de registro COM deben coincidir

Actualización: noviembre 2007

     TypeName

ComRegistrationMethodsShouldBeMatched

Identificador de comprobación

CA1410

Category

Microsoft.Interoperability

Cambio problemático

No 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 COM creen un tipo de .NET Framework, el tipo se debe registrar primero. 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

Los métodos de registro COM no deben ser visibles

Vea también

Conceptos

Registrar ensamblados con COM

Referencia

Herramienta Registro de ensamblados (Regasm.exe)

System.Runtime.InteropServices.RegistrationServices