CA1017 : Marquer les assemblys avec ComVisibleAttribute
Propriété | Value |
---|---|
Identificateur de la règle | CA1017 |
Titre | Marquer les assemblys avec ComVisibleAttribute |
Catégorie | Conception |
Le correctif est cassant ou non cassant | Sans rupture |
Activé par défaut dans .NET 8 | Non |
Cause
Un assembly n’a pas System.Runtime.InteropServices.ComVisibleAttribute l’attribut appliqué à celui-ci.
Description de la règle
L’attribut ComVisibleAttribute détermine comment les clients COM accèdent à du code managé. Un bon design stipule que les assemblys indiquent explicitement la visibilité COM. La visibilité COM peut être définie pour un assembly tout entier, puis remplacée pour des types et des membres de type individuels. En l’absence de l’attribut, les clients COM peuvent voir le contenu de l’assembly.
Comment corriger les violations
Pour corriger une violation de cette règle, ajoutez l’attribut à l’assembly. Si vous ne souhaitez pas que l’assembly soit visible par les clients COM, appliquez l’attribut et définissez sa valeur sur false
.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle. Si vous souhaitez que l’assembly soit visible, appliquez l’attribut et définissez sa valeur sur true
.
Exemple
L’exemple suivant montre un assembly auquel l’attribut ComVisibleAttribute est appliqué pour l’empêcher d’être visible par les clients COM.
<Assembly: System.Runtime.InteropServices.ComVisible(False)>
Namespace DesignLibrary
End Namespace
[assembly: System.Runtime.InteropServices.ComVisible(false)]
namespace DesignLibrary {}