## Why is this an issue?

The .NET framework class library provides methods for retrieving custom attributes. Sealing the attribute eliminates the search through the inheritance hierarchy, and can improve performance.

This rule raises an issue when a public type inherits from `System.Attribute`, is not abstract, and is not sealed.

### Noncompliant code example

    Public Class MyAttribute    ' Noncompliant
        Inherits Attribute

        Public ReadOnly Property Name As String

        Public Sub New(Name As String)
            Me.Name = Name
        End Sub

    End Class

### Compliant solution

    Public NotInheritable Class MyAttribute
        Inherits Attribute

        Public ReadOnly Property Name As String

        Public Sub New(Name As String)
            Me.Name = Name
        End Sub

    End Class