CA1410: Métodos de registro COM devem ter correspondência
TypeName |
ComRegistrationMethodsShouldBeMatched |
CheckId |
CA1410 |
<strong>Categoria</strong> |
Microsoft.Interoperability |
Alteração significativa |
Não-separável |
Causa
Um tipo declara um método marcado com o System.Runtime.InteropServices.ComRegisterFunctionAttribute de atributo, mas não declara um método marcado com o System.Runtime.InteropServices.ComUnregisterFunctionAttribute atributo, ou vice-versa.
Descrição da regra
Para clientes do modelo de objeto componente (COM) criar um .NET Framework tipo, o tipo deve primeiro ser registrado.Se estiver disponível, um método marcado com o ComRegisterFunctionAttribute atributo é chamado durante o processo de registro para executar o código especificado pelo usuário.Um método correspondente que é marcado com o ComUnregisterFunctionAttribute atributo é chamado durante o processo de cancelamento para reverter as operações do método de registro.
Como corrigir violações
Para corrigir uma violação desta regra, adicione o método de cancelamento de registro ou o registro correspondente.
Quando suprimir avisos
Não suprimir um aviso da regra.
Exemplo
O exemplo a seguir mostra um tipo que viola a regra.O código de comentadas mostra a correção para a 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: Métodos de registro COM não deverá ser visíveis
Consulte também
Referência
Regasm (ferramenta de registro de Assembly)
System.Runtime.InteropServices.RegistrationServices