CA1410: Métodos de registro COM devem ser correspondidos
Item | Valor |
---|---|
RuleId | CA1410 |
Categoria | Microsoft.Interoperability |
Alteração da falha | Sem interrupção |
Causa
Um tipo declara um método marcado com o atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute, mas não declara um método marcado com o atributo System.Runtime.InteropServices.ComUnregisterFunctionAttribute ou vice-versa.
Descrição da regra
Para clientes COM (Component Object Model) criarem um tipo .NET, o tipo deverá primeiro ser registrado. Se estiver disponível, um método marcado com o atributo ComRegisterFunctionAttribute será chamado durante o processo de registro para executar o código especificado pelo usuário. Um método correspondente marcado com o atributo ComUnregisterFunctionAttribute é chamado durante o processo de cancelamento do registro para reverter as operações do método de registro.
Como corrigir violações
Para corrigir uma violação dessa regra, adicione o método de registro ou cancelamento de registro correspondente.
Quando suprimir avisos
Não suprima um aviso nessa regra.
Exemplo
O seguinte exemplo mostra um tipo que viola a regra. O código comentado mostra a correção da violação.
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 devem ser visíveis
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