CA1411: Métodos de registro COM não devem ser visíveis

Item Valor
RuleId CA1411
Categoria Microsoft.Interoperability
Alteração da falha Quebra

Causa

Um método marcado com o atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute ou System.Runtime.InteropServices.ComUnregisterFunctionAttribute está visível externamente.

Descrição da regra

Quando um assembly é registrado com o COM (Component Object Model), as entradas são adicionadas ao registro para cada tipo visível pelo COM no assembly. Métodos marcados com os atributos ComRegisterFunctionAttribute e ComUnregisterFunctionAttribute são chamados durante os processos de registro e cancelamento de registro, respectivamente, para executar o código do usuário específico para o registro/cancelamento do registro desses tipos. Esse código não deve ser chamado fora desses processos.

Como corrigir violações

Para corrigir uma violação dessa regra, altere a acessibilidade do método para private ou internal (Friend no Visual Basic).

Quando suprimir avisos

Não suprima um aviso nessa regra.

Exemplo

O exemplo a seguir mostra dois métodos que violam a regra.

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: Métodos de registro COM devem ser correspondidos

Confira também