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

TypeNameTypeName ComRegistrationMethodsShouldNotBeVisibleComRegistrationMethodsShouldNotBeVisible
CheckIdCheckId CA1411CA1411
CategoryCategory Microsoft.InteroperabilityMicrosoft.Interoperability
Modification avec ruptureBreaking Change RuptureBreaking

CauseCause

Une méthode qui est marquée avec la System.Runtime.InteropServices.ComRegisterFunctionAttribute ou System.Runtime.InteropServices.ComUnregisterFunctionAttribute attribut est visible de l’extérieur.A method that is marked with the System.Runtime.InteropServices.ComRegisterFunctionAttribute or the System.Runtime.InteropServices.ComUnregisterFunctionAttribute attribute is externally visible.

Description de la règleRule Description

Lorsqu’un assembly est enregistré avec COM Component Object Model (), les entrées sont ajoutées au Registre pour chaque type visible par COM dans l’assembly.When an assembly is registered with Component Object Model (COM), entries are added to the registry for each COM-visible type in the assembly. Les méthodes marquées avec le ComRegisterFunctionAttribute et ComUnregisterFunctionAttribute attributs sont appelés pendant les processus d’inscription et d’annulation d’inscription, respectivement, pour exécuter le code utilisateur qui est spécifique à l’inscription/de la désinscription de ces types.Methods that are marked with the ComRegisterFunctionAttribute and ComUnregisterFunctionAttribute attributes are called during the registration and unregistration processes, respectively, to run user code that is specific to the registration/unregistration of these types. Ce code ne doit pas être appelé en dehors de ces processus.This code should not be called outside these processes.

Comment corriger les violationsHow to Fix Violations

Pour corriger une violation de cette règle, modifiez l’accessibilité de la méthode à private ou internal (Friend dans Visual BasicVisual Basic).To fix a violation of this rule, change the accessibility of the method to private or internal (Friend in Visual BasicVisual Basic).

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 deux méthodes qui enfreint la règle.The following example shows two methods that violate the rule.

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) {}
   }
}
Imports System
Imports System.Runtime.InteropServices

<Assembly: ComVisibleAttribute(True)>
Namespace InteroperabilityLibrary

   Public Class ClassToRegister
   End Class

   Public Class ComRegistration

      <ComRegisterFunctionAttribute> _ 
      Public Shared Sub RegisterFunction(typeToRegister As Type)
      End Sub

      <ComUnregisterFunctionAttribute> _ 
      Public Shared Sub UnregisterFunction(typeToRegister As Type)
      End Sub

   End Class

End Namespace

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

Voir aussiSee Also

System.Runtime.InteropServices.RegistrationServices
Inscription d’assemblys dans COM Registering Assemblies with COM
Regasm.exe (outil d’inscription d’assemblys)Regasm.exe (Assembly Registration Tool)