CA1409 : Les types visibles par COM doivent pouvoir être créés
TypeName |
ComVisibleTypesShouldBeCreatable |
CheckId |
CA1409 |
Catégorie |
Microsoft.Interoperability |
Modification avec rupture |
Modification sans rupture |
Cause
Un type référence marqué spécifiquement comme visible par des clients COM (Component Object Model) contient un constructeur public paramétrable, mais ne contient pas de constructeur public par défaut (sans paramètre).
Description de la règle
Un type sans constructeur public par défaut ne peut pas être créé par les clients COM. Toutefois, le type reste accessible aux clients COM si un autre moyen est disponible pour créer le type et le passer au client ; par exemple, par le biais de la valeur de retour d'un appel de méthode.
La règle ignore les types qui sont dérivés de System.Delegate.
Par défaut, les éléments suivants sont visibles par le modèle COM : assemblys, types publics, membres d'instances publics dans des types publics, et tous les membres de types valeur publics.
Comment corriger les violations
Pour corriger une violation de cette règle, ajoutez un constructeur public par défaut ou supprimez le System.Runtime.InteropServices.ComVisibleAttribute du type.
Quand supprimer les avertissements
Il est possible de supprimer sans risque un avertissement de cette règle si d'autres moyens sont fournis pour créer l'objet et le passer au client COM.
Règles connexes
CA1017 : Marquer les assemblys avec ComVisibleAttribute
Voir aussi
Concepts
Qualification des types .NET en vue d'une interopérabilité