CA1411: Los métodos de registro COM no deben ser visibles
Elemento | Valor |
---|---|
RuleId | CA1411 |
Category | Microsoft.Interoperability |
Cambio importante | Problemático |
Causa
Un método marcado con el atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute o System.Runtime.InteropServices.ComUnregisterFunctionAttribute es externamente visible.
Descripción de la regla
Cuando se registra un ensamblado con el modelo de objetos componentes (COM), se agregan entradas al Registro para cada tipo COM visible del ensamblado. Los métodos marcados con los atributos ComRegisterFunctionAttribute y ComUnregisterFunctionAttribute se llaman durante los procesos de registro y anulación del registro, respectivamente, para ejecutar código de usuario específico del registro o anulación del registro de estos tipos. No se debe llamar a este código al margen 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 las advertencias
No suprima las advertencias de esta regla.
Ejemplo
En el ejemplo siguiente se muestran dos métodos que infringen la regla.
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 deben coincidir
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de