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

Élément Valeur
ID de la règle CA1411
Category Microsoft.Interoperability
Modification avec rupture Rupture

Cause

Méthode marquée avec l’attribut System.Runtime.InteropServices.ComRegisterFunctionAttribute ou System.Runtime.InteropServices.ComUnregisterFunctionAttribute visible en externe.

Description de la règle

Lorsqu’un assembly est inscrit auprès de Component Object Model (COM), des entrées sont ajoutées au Registre pour chaque type visible par COM dans l’assembly. Les méthodes marquées avec les attributs ComRegisterFunctionAttribute et ComUnregisterFunctionAttribute sont appelées au cours des processus d’inscription et d’annulation de l’inscription, respectivement, pour exécuter du code utilisateur spécifique à l’inscription/à l’annulation de l’inscription de ces types. Ce code ne doit pas être appelé en dehors de ces processus.

Comment corriger les violations

Pour corriger une violation de cette règle, modifiez l’accessibilité de la méthode en private ou internal (Friend en Visual Basic).

Quand supprimer les avertissements

Ne supprimez aucun avertissement de cette règle.

Exemple

L’exemple suivant montre deux méthodes qui violent la règle.

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

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

Voir aussi