CA1410 : Les méthodes d'inscription COM doivent être mises en correspondance

Élément Valeur
ID de la règle CA1410
Category Microsoft.Interoperability
Modification avec rupture 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 inversement.

Description de la règle

Pour que les clients COM (Component Object Model) créent un type .NET, le type doit d’abord être inscrit. 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 de désinscription pour inverser les opérations de la méthode d’inscription.

Comment corriger les violations

Pour corriger une infraction à cette règle, ajoutez la méthode d’inscription ou de désinscription correspondante.

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle.

Exemple

L’exemple suivant montre un type qui enfreint la règle. Le code commenté montre le correctif pour l’infraction.

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) {}
   }
}

CA1411 : Les méthodes d'inscription COM ne doivent pas être visibles

Voir aussi