CA1410: Los métodos de registro COM deben coincidir
Elemento | Valor |
---|---|
RuleId | CA1410 |
Category | Microsoft.Interoperability |
Cambio importante | Poco problemático |
Causa
Un tipo declara un método marcado con el atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute, pero no declara ningún 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, primero debe registrarse el tipo. Si está disponible, se llama a un método marcado con el atributo ComRegisterFunctionAttribute durante el proceso de registro para ejecutar código especificado por el usuario. Se llama a un método correspondiente marcado con el atributo ComUnregisterFunctionAttribute durante el proceso de 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 del registro correspondiente.
Cuándo suprimir las advertencias
No suprima las advertencias de esta regla.
Ejemplo
En el ejemplo siguiente se muestra un tipo que infringe la regla. El código comentado muestra la corrección de la infracción.
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
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