Compartilhar via


CA1410: os métodos de registro COM devem ser correspondentes

TypeName

ComRegistrationMethodsShouldBeMatched

CheckId

CA1410

Categoria

Microsoft.Interoperability

Alteração Significativa

Sem quebra

Causa

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

Descrição da Regra

Para que os clientes do Component Object Model (COM) para criar um tipo de .NET Framework , o tipo deve primeiro ser registrado.Se estiver disponível, um método marcado com o atributo de ComRegisterFunctionAttribute é chamado durante o processo de registro para executar código especificado pelo usuário.Um método de correspondência que é marcado com o atributo de ComUnregisterFunctionAttribute é chamado durante o processo de unregistration para inverter as operações do método do registro.

Como Corrigir Violações

Para corrigir uma violação desta regra, adicione o método de correspondência de registro ou de unregistration.

Quando Suprimir Alertas

Não elimine um alerta desta regra.

Exemplo

O exemplo a seguir mostra um tipo que viola a regra.O código a seguir mostra como comentário a correção da 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: os métodos de registro COM não devem estar visíveis

Consulte também

Referência

Regasm.exe (Ferramenta de Registro de Assembly)

RegistrationServices

Conceitos

Registrando assemblies com o COM