Partilhar via


Métodos de inscrição COM devem ser correspondidos.

TypeName

ComRegistrationMethodsShouldBeMatched

CheckId

CA1410

Category (Categoria)

Microsoft.interoperabilidade

Quebrando alterar

Não separável

Causa

Um tipo declara um método marcado com o System.Runtime.InteropServices.ComRegisterFunctionAttribute 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 COM criar um tipo .NET estrutura, o tipo primeiro deve ser registrado.Se estiver disponível, um método marcado com o ComRegisterFunctionAttribute atributo é chamado durante o processo de inscrição especificado pelo usuário de executar código. Um método correspondente marcados com o ComUnregisterFunctionAttribute atributo é chamado durante o processo de cancelamento de inscrição para reverter as operações do método de inscrição.

Como corrigir violações

Para corrigir uma violação dessa regra adicione o método de cancelamento de inscrição ou inscrição 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 comentado mostra a correção 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

Métodos de inscrição COM devem estar visíveis

Consulte também

Conceitos

Registrar assemblies com

Referência

Ferramenta de registro do conjunto (RegAsm.exe)

System.Runtime.InteropServices.RegistrationServices