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()
{
}
}