CA1411: Métodos de registro COM não devem ser visíveis
Item | Valor |
---|---|
RuleId | CA1411 |
Categoria | Microsoft.Interoperability |
Alteração da falha | Quebra |
Causa
Um método marcado com o atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute ou System.Runtime.InteropServices.ComUnregisterFunctionAttribute está visível externamente.
Descrição da regra
Quando um assembly é registrado com o COM (Component Object Model), as entradas são adicionadas ao registro para cada tipo visível pelo COM no assembly. Métodos marcados com os atributos ComRegisterFunctionAttribute e ComUnregisterFunctionAttribute são chamados durante os processos de registro e cancelamento de registro, respectivamente, para executar o código do usuário específico para o registro/cancelamento do registro desses tipos. Esse código não deve ser chamado fora desses processos.
Como corrigir violações
Para corrigir uma violação dessa regra, altere a acessibilidade do método para private
ou internal
(Friend
no Visual Basic).
Quando suprimir avisos
Não suprima um aviso nessa regra.
Exemplo
O exemplo a seguir mostra dois métodos que violam a regra.
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: Métodos de registro COM devem ser correspondidos
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de