Errore del compilatore CS0592

L'attributo 'attributo' non è valido in questo tipo di dichiarazione.È valido soltanto in dichiarazioni di 'tipo'.

Quando si definisce un attributo, si definisce a quali costrutti può essere applicato specificando un valore AttributeTargets. Nell'esempio seguente, l'attributo MyAttribute può essere applicato solo alle interfacce, perché l'attributo AttributeUsage specifica AttributeTargets.Iterface. L'errore viene generato perché l'attributo è applicato a una classe (classe A).

Esempio

Il seguente codice di esempio genera l'errore CS0592:

// CS0592.cs
using System;

[AttributeUsage(AttributeTargets.Interface)]
public class MyAttribute : Attribute 
{
}

[MyAttribute]
// Generates CS0592 because MyAttribute is not valid for a class. 
public class A  
{
    public static void Main()
    {
    }
}

Vedere anche

Riferimenti

Attributi (C# e Visual Basic)