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

Elemento Valor
RuleId CA1411
Category Microsoft.Interoperability
Cambio importante Problemático

Causa

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

Descripción de la regla

Cuando se registra un ensamblado con el modelo de objetos componentes (COM), se agregan entradas al Registro para cada tipo COM visible del ensamblado. Los métodos marcados con los atributos ComRegisterFunctionAttribute y ComUnregisterFunctionAttribute se llaman durante los procesos de registro y anulación del registro, respectivamente, para ejecutar código de usuario específico del registro o anulación del registro de estos tipos. No se debe llamar a este código al margen 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 las advertencias

No suprima las advertencias de esta regla.

Ejemplo

En el ejemplo siguiente se muestran dos métodos que infringen la regla.

using System;
using System.Runtime.InteropServices;

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

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

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

CA1410: Los métodos de registro COM deben coincidir

Consulte también