La versione personalizzata di 'System.Runtime.CompilerServices.ExtensionAttribute' trovata dal compilatore non è valida

Aggiornamento: novembre 2007

Messaggio di errore

La versione personalizzata di 'System.Runtime.CompilerServices.ExtensionAttribute' trovata dal compilatore non è valida. I flag di utilizzo di un attributo devono essere impostati per consentire assembly, classi e metodi.
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 versione personalizzata di System.Runtime.CompilerServices.ExtensionAttribute trovata dal compilatore non imposta i flag di utilizzo di un attributo in modo da consentire l'applicazione dell'attributo a assembly, metodi e classi. È necessaria l'applicazione ad almeno questi tre elementi del programma.

ID errore: BC36558

Per correggere l'errore

Esempio

Nell'esempio seguente viene utilizzato l'attributo AttributeUsage per specificare a quali elementi del programma può venire applicata la nuova versione di ExtensionAttribute. Nell'esempio vengono specificati tre membri dell'enumerazione AttributeTargets: Assembly, Classe Method. L'omissione di uno qualsiasi di questi elementi determina questo errore.

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

In alternativa, è possibile consentire l'applicazione di ExtensionAttribute a tutti gli elementi del programma utilizzando il membro All di AttributeTargets.

    <AttributeUsage(AttributeTargets.All)>

L'eliminazione della riga AttributeUsage produce lo stesso risultato, come mostrato nel codice seguente.

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

Vedere anche

Attività

Procedura: definire attributi personalizzati

Concetti

Cenni preliminari sugli attributi in Visual Basic

Metodi di estensione (Visual Basic)

Scrittura di attributi personalizzati

Riferimenti

ExtensionAttribute

Altre risorse

Attributi personalizzati in Visual Basic