== Why is this an issue? When defining custom attributes, ``++System.AttributeUsageAttribute++`` must be used to indicate where the attribute can be applied. This will determine its valid locations in the code. === Noncompliant code example [source,text] ---- using System; namespace MyLibrary { public sealed class MyAttribute :Attribute // Noncompliant { string text; public MyAttribute(string myText) { text = myText; } public string Text { get { return text; } } } } ---- === Compliant solution [source,text] ---- using System; namespace MyLibrary { [AttributeUsage(AttributeTargets.Class | AttributeTargets.Enum | AttributeTargets.Interface | AttributeTargets.Delegate)] public sealed class MyAttribute :Attribute { string text; public MyAttribute(string myText) { text = myText; } public string Text { get { return text; } } } } ----