CA1410: Métodos de registro COM devem ser correspondidos

Item Valor
RuleId CA1410
Categoria Microsoft.Interoperability
Alteração da falha Sem interrupção

Causa

Um tipo declara um método marcado com o atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute, mas não declara um método marcado com o atributo System.Runtime.InteropServices.ComUnregisterFunctionAttribute ou vice-versa.

Descrição da regra

Para clientes COM (Component Object Model) criarem um tipo .NET, o tipo deverá primeiro ser registrado. Se estiver disponível, um método marcado com o atributo ComRegisterFunctionAttribute será chamado durante o processo de registro para executar o código especificado pelo usuário. Um método correspondente marcado com o atributo ComUnregisterFunctionAttribute é chamado durante o processo de cancelamento do registro para reverter as operações do método de registro.

Como corrigir violações

Para corrigir uma violação dessa regra, adicione o método de registro ou cancelamento de registro correspondente.

Quando suprimir avisos

Não suprima um aviso nessa regra.

Exemplo

O seguinte exemplo mostra um tipo que viola a regra. O código comentado mostra a correção da violação.

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: Métodos de registro COM não devem ser visíveis

Confira também