CA1410 : Les méthodes d'inscription COM doivent être mises en correspondanceCA1410: COM registration methods should be matched

TypeNameTypeName ComRegistrationMethodsShouldBeMatchedComRegistrationMethodsShouldBeMatched
CheckIdCheckId CA1410CA1410
CategoryCategory Microsoft.InteroperabilityMicrosoft.Interoperability
Modification avec ruptureBreaking Change Sans ruptureNon-breaking

CauseCause

Un type déclare une méthode qui est marquée avec le System.Runtime.InteropServices.ComRegisterFunctionAttribute attribut mais ne déclare pas une méthode qui est marquée avec le System.Runtime.InteropServices.ComUnregisterFunctionAttribute attribut, ou vice versa.A type declares a method that is marked with the System.Runtime.InteropServices.ComRegisterFunctionAttribute attribute but does not declare a method that is marked with the System.Runtime.InteropServices.ComUnregisterFunctionAttribute attribute, or vice versa.

Description de la règleRule description

Pour les clients de composant COM (Object Model) créer un type .NET Framework, le type doit d’abord être enregistré.For Component Object Model (COM) clients to create a .NET Framework type, the type must first be registered. S’il est disponible, une méthode qui est marquée avec le ComRegisterFunctionAttribute attribut est appelé pendant le processus d’inscription pour exécuter du code spécifié par l’utilisateur.If it is available, a method that is marked with the ComRegisterFunctionAttribute attribute is called during the registration process to run user-specified code. Une méthode correspondante qui est marquée avec le ComUnregisterFunctionAttribute attribut est appelé pendant le processus d’inscription pour inverser les opérations de la méthode d’inscription.A corresponding method that is marked with the ComUnregisterFunctionAttribute attribute is called during the unregistration process to reverse the operations of the registration method.

Comment corriger les violationsHow to fix violations

Pour corriger une violation de cette règle, ajoutez l’inscription correspondante ou la méthode de désinscription.To fix a violation of this rule, add the corresponding registration or unregistration method.

Quand supprimer les avertissementsWhen to suppress warnings

Ne supprimez aucun avertissement de cette règle.Do not suppress a warning from this rule.

ExempleExample

L’exemple suivant montre un type qui viole la règle.The following example shows a type that violates the rule. Le code commenté affiche le correctif de la violation.The commented code shows the fix for the violation.

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

CA1411 : Les méthodes d’inscription COM ne doivent pas être visiblesCA1411: COM registration methods should not be visible

Voir aussiSee also