C# Error CS1689 – Attribute ‘{0}’ is only valid on methods or attribute classes

C# Error

CS1689 – Attribute ‘{0}’ is only valid on methods or attribute classes

Reason for the Error & Solution

Attribute ‘Attribute Name’ is only valid on methods or attribute classes

This error only occurs with the ConditionalAttribute attribute. As the message states, this attribute can only be used on methods or attribute classes. For example, trying to apply this attribute to a class will generate this error.

Example

The following sample generates CS1689.

// CS1689.cs  
// compile with: /target:library  
[System.Diagnostics.Conditional("A")]   // CS1689  
class MyClass {}