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)