CA1411 : Les méthodes d'inscription COM ne doivent pas être visibles
TypeName |
ComRegistrationMethodsShouldNotBeVisible |
CheckId |
CA1411 |
Catégorie |
Microsoft.Interoperability |
Modification avec rupture |
Oui |
Cause
Une méthode marquée avec l'attribut System.Runtime.InteropServices.ComRegisterFunctionAttribute ou System.Runtime.InteropServices.ComUnregisterFunctionAttribute est visible de l'extérieur.
Description de la règle
Quand un assembly est enregistré avec le modèle COM (Component Object Model), des entrées sont ajoutées au registre pour chaque type COM visible dans l'assembly.Les méthodes marquées avec les attributs ComRegisterFunctionAttribute et ComUnregisterFunctionAttribute sont appelées durant les processus d'inscription et d'annulation d'inscription, respectivement, pour exécuter le code utilisateur spécifique à l'inscription et l'annulation d'inscription de ces types.Ce code ne doit pas être appelé à l'extérieur de ces processus.
Comment corriger les violations
Pour corriger une violation de cette règle, affectez la valeur private ou internal à l'accessibilité de la méthode (Friend en Visual Basic).
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
L'exemple suivant présente deux méthodes qui ne respectent pas la règle.
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
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) {}
}
}
Règles connexes
CA1410 : Les méthodes d'inscription COM doivent être mises en correspondance
Voir aussi
Référence
Regasm.exe (outil Assembly Registration Tool)
System.Runtime.InteropServices.RegistrationServices