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