Compartilhar via


CA1410: Métodos de registro COM devem ter correspondência

TypeName

ComRegistrationMethodsShouldBeMatched

CheckId

CA1410

<strong>Categoria</strong>

Microsoft.Interoperability

Alteração significativa

Não-separável

Causa

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

Descrição da regra

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

Como corrigir violações

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

Quando suprimir avisos

Não suprimir um aviso da regra.

Exemplo

O exemplo a seguir mostra um tipo que viola a regra.O código de comentadas mostra a correção para a violação.

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

Regras relacionadas

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

Consulte também

Referência

Regasm (ferramenta de registro de Assembly)

System.Runtime.InteropServices.RegistrationServices

Conceitos

Registrar Assemblies no COM