CA1410 : Les méthodes d'inscription COM doivent être mises en correspondance
TypeName |
ComRegistrationMethodsShouldBeMatched |
CheckId |
CA1410 |
Catégorie |
Microsoft.Interoperability |
Modification avec rupture |
Modification sans rupture |
Cause
Un type déclare une méthode marquée avec l'attribut System.Runtime.InteropServices.ComRegisterFunctionAttribute, mais ne déclare pas une méthode marquée avec l'attribut System.Runtime.InteropServices.ComUnregisterFunctionAttribute, ou vice-versa.
Description de la règle
Pour que les clients COM (Component Object Model) créent un type .NET Framework, le type doit d'abord être enregistré.Si elle est disponible, une méthode marquée avec l'attribut ComRegisterFunctionAttribute est appelée pendant le processus d'inscription pour exécuter le code spécifié par l'utilisateur.Une méthode correspondante marquée avec l'attribut ComUnregisterFunctionAttribute est appelée pendant le processus d'inscription pour inverser les opérations de la méthode d'inscription.
Comment corriger les violations
Pour corriger une violation de cette règle, ajoutez la méthode d'inscription ou d'annulation d'inscription correspondante.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
L'exemple suivant présente un type qui enfreint la règle.Le code commenté affiche le correctif de la violation.
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) {}
}
}
Règles connexes
CA1411 : Les méthodes d'inscription COM ne doivent pas être visibles
Voir aussi
Référence
Regasm.exe (outil Assembly Registration Tool)
System.Runtime.InteropServices.RegistrationServices