Partager via


La version personnalisée de 'System.Runtime.CompilerServices.ExtensionAttribute' trouvée par le compilateur n'est pas valide

Mise à jour : novembre 2007

Message d'erreur

La version personnalisée de 'System.Runtime.CompilerServices.ExtensionAttribute' trouvée par le compilateur n'est pas valide. Ses indicateurs d'utilisation de l'attribut doivent être configurés pour autoriser des assemblys, des classes et des méthodes.
The custom-designed version of 'System.Runtime.CompilerServices.ExtensionAttribute' found by the compiler is not valid. Its attribute usage flags must be set to allow assemblies, classes, and methods.

La version de System.Runtime.CompilerServices.ExtensionAttribute fabriquée sur commande et recherchée par le compilateur ne définit pas son utilisation d'attributs pour permettre l'application des attributs aux assemblys, aux méthodes et aux classes. L'application à ces trois éléments de programme au moins est requise.

ID d'erreur : BC36558

Pour corriger cette erreur

  • Modifiez la définition d'attribut pour activer l'attribut à appliquer au moins aux assemblys, aux méthodes et aux classes, comme illustré aux exemples suivants.

  • Utilisez System.Runtime.CompilerServices.ExtensionAttribute au lieu de la version fabriquée sur commande.

Exemple

L'exemple suivant utilise l'attribut AttributeUsage pour spécifier les éléments de programme à appliquer à la nouvelle version d' ExtensionAttribute. L'exemple spécifie trois membres de l'énumération AttributeTargets : Assembly, Classet Method. L'omission de l'un de ces éléments provoquera cette erreur.

Namespace System.Runtime.CompilerServices
    <AttributeUsage(AttributeTargets.Assembly Or _
        AttributeTargets.Class Or AttributeTargets.Method)>
    Class ExtensionAttribute
        Inherits System.Attribute
        ' Definitions of methods, fields, and properties.
    End Class
End Namespace

Vous pouvez également autoriser l'ExtensionAttribute à appliquer à tous les éléments de programme en utilisant le membre All de AttributeTargets.

    <AttributeUsage(AttributeTargets.All)>

Le fait la ligne AttributeUsage, comme indiqué dans le code suivant, produit le même résultat.

Namespace System.Runtime.CompilerServices
    Class ExtensionAttribute
        Inherits System.Attribute
        ' Definitions of methods, fields, and properties.
    End Class
End Namespace

Voir aussi

Tâches

Comment : définir vos propres attributs

Concepts

Vue d'ensemble des attributs dans Visual Basic

Méthodes d'extension (Visual Basic)

Écriture des attributs personnalisés

Référence

ExtensionAttribute

Autres ressources

Attributs personnalisés en Visual Basic