Les méthodes d'inscription COM ne doivent pas être visibles
Mise à jour : novembre 2007
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
Lorsqu'un assembly est enregistré avec COM, les entrées sont ajoutées au Registre pour chacun des types visibles par COM 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
Les méthodes d'inscription COM doivent être mises en correspondance
Voir aussi
Concepts
Inscription d'assemblys dans COM