Partilhar via


CA1411: os métodos de registro COM não devem estar visíveis

TypeName

ComRegistrationMethodsShouldNotBeVisible

CheckId

CA1411

Categoria

Microsoft.Interoperability

Alteração Significativa

Quebra

Causa

Um método que é marcado com ComRegisterFunctionAttribute ou atributo de ComUnregisterFunctionAttribute externamente é visível.

Descrição da Regra

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

Como Corrigir Violações

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

Quando Suprimir Alertas

Não elimine um alerta desta regra.

Exemplo

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

Imports System
Imports System.Runtime.InteropServices

<Assembly: ComVisibleAttribute(True)>
Namespace InteroperabilityLibrary

   Public Class ClassToRegister
   End Class 

   Public Class ComRegistration

      <ComRegisterFunctionAttribute> _ 
      Public Shared Sub RegisterFunction(typeToRegister As Type)
      End Sub

      <ComUnregisterFunctionAttribute> _ 
      Public 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]
      public static void RegisterFunction(Type typeToRegister) {}

      [ComUnregisterFunction]
      public static void UnregisterFunction(Type typeToRegister) {}
   }
}

Regras Relacionadas

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

Consulte também

Referência

Regasm.exe (Ferramenta de Registro de Assembly)

RegistrationServices

Conceitos

Registrando assemblies com o COM