CA1411: Los métodos de registro COM no deben ser visibles
TypeName |
ComRegistrationMethodsShouldNotBeVisible |
Identificador de comprobación |
CA1411 |
Categoría |
Microsoft.Interoperability |
Cambio problemático |
Problemático |
Motivo
Un método marcado con el atributo ComRegisterFunctionAttribute o ComUnregisterFunctionAttribute es visible externamente.
Descripción de la regla
Cuando un ensamblado se registra con el Modelo de objetos componentes (COM), se agregan entradas al Registro para cada tipo visible a través de COM en el ensamblado.Durante los procesos de registro y anulación de registro se llama a métodos marcados, respectivamente, con los atributos ComRegisterFunctionAttribute y ComUnregisterFunctionAttribute, para ejecutar el código de usuario específico del registro y la anulación de registro de estos tipos.No se debe llamar a este código fuera de estos procesos.
Cómo corregir infracciones
Para corregir una infracción de esta regla, cambie la accesibilidad del método a private o internal (Friend en Visual Basic).
Cuándo suprimir advertencias
No suprima las advertencias de esta regla.
Ejemplo
El siguiente ejemplo muestra dos métodos que infringen la regla.
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) {}
}
}
Reglas relacionadas
CA1410: Los métodos de registro COM se deben adjuntar
Vea también
Referencia
Regasm.exe (Herramienta de registro de ensamblados)