Share via


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é

Autres ressources

Interopération avec du code non managé