CA1410: Los métodos de registro COM deben coincidir

Elemento Valor
RuleId CA1410
Category Microsoft.Interoperability
Cambio importante Poco problemático

Causa

Un tipo declara un método marcado con el atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute, pero no declara ningún 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, primero debe registrarse el tipo. Si está disponible, se llama a un método marcado con el atributo ComRegisterFunctionAttribute durante el proceso de registro para ejecutar código especificado por el usuario. Se llama a un método correspondiente marcado con el atributo ComUnregisterFunctionAttribute durante el proceso de 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 del registro correspondiente.

Cuándo suprimir las advertencias

No suprima las advertencias de esta regla.

Ejemplo

En el ejemplo siguiente se muestra un tipo que infringe la regla. El código comentado muestra la corrección de la infracción.

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) {}
   }
}

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

Consulte también