Compilerfehler CS0592Compiler Error CS0592

Das Attribut „Attribut“ ist für diesen Deklarationstyp nicht gültig.Attribute 'attribute' is not valid on this declaration type. Es ist nur in Deklarationen vom Typ „Typ“ gültig.It is valid on 'type' declarations only.

Beim Definieren eines Attributs geben Sie mit dem AttributeTargets-Wert an, auf welche Konstrukte dieses angewendet werden kann.When you define an attribute, you define what constructs it can be applied to by specifying an AttributeTargets value. Im folgenden Beispiel kann das Attribut MyAttribute nur auf Schnittstellen angewendet werden, da AttributeTargets.Interface mit dem Attribut AttributeUsage angegeben wird.In the following example, the MyAttribute attribute can be applied to interfaces only, because the AttributeUsage attribute specifies AttributeTargets.Interface. Der Fehler wird generiert, da das Attribut auf eine Klasse (Klasse A) angewendet wird.The error is generated because the attribute is applied to a class (class A).

BeispielExample

Im folgenden Beispiel wird der Fehler CS0592 generiert:The following sample generates 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()  
    {  
    }  
}  

Siehe auchSee Also

AttributeAttributes