Erreur du compilateur CS0592

L’attribut 'attribute' n’est pas valide sur ce type de déclaration. Il n’est valide que sur les déclarations 'type'.

Quand vous définissez un attribut, vous déterminez les constructions auxquelles il peut s’appliquer en spécifiant une valeur AttributeTargets. Dans l’exemple suivant, l’attribut MyAttribute peut être appliqué uniquement à des interfaces, car l’attribut AttributeUsage spécifie AttributeTargets.Interface. L’erreur est générée, car l’attribut est appliqué à une classe (classe A).

Exemple

L’exemple suivant génère l’erreur 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()  
    {  
    }  
}  

Voir aussi