CA1410: Los métodos de registro COM se deben adjuntar
Nombre de tipo |
ComRegistrationMethodsShouldBeMatched |
Identificador de comprobación |
CA1410 |
Categoría |
Microsoft.Interoperability |
Cambio problemático |
Poco problemático |
Motivo
Un tipo declara un método marcado con el atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute pero no declara un método marcado con el atributo System.Runtime.InteropServices.ComUnregisterFunctionAttribute, o viceversa.
Descripción de la regla
Para que los clientes del Modelo de objetos componentes (COM) creen un tipo de .NET Framework, primero se debe registrar el tipo.Si está disponible, se llama a un método marcado con el atributo ComRegisterFunctionAttribute durante el proceso del registro para ejecutar código especificado por el usuario.Se llama a un método correspondiente marcado con el atributo ComUnregisterFunctionAttribute durante el proceso del anulación del registro, para invertir las operaciones del método de registro.
Cómo corregir infracciones
Para corregir una infracción de esta regla, agregue el método de registro o anulación de registro correspondiente.
Cuándo suprimir advertencias
No suprima las advertencias de esta regla.
Ejemplo
El siguiente ejemplo muestra un tipo que infringe la regla.El código marcado como comentario muestra la corrección para la infracción.
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) {}
}
}
Reglas relacionadas
CA1411: Los métodos de registro COM no deben ser visibles
Vea también
Referencia
Regasm.exe (Herramienta de registro de ensamblados)
System.Runtime.InteropServices.RegistrationServices