Attribute Class represents the base class for custom attributes.
Imports System
Imports System.Reflection
Public Module CustomAttrVB
Public Enum Employee
A = 1
B
C
End Enum
<AttributeUsage(AttributeTargets.Method)> _
Public Class EmployeeTypeAttribute
Inherits Attribute
Public Sub New(ByVal emp As Employee)
Me.theEmp = emp
End Sub
Protected theEmp As Employee
Public Property Pet() As Employee
Get
Return theEmp
End Get
Set(ByVal Value As Employee)
theEmp = Value
End Set
End Property
End Class
Class EmployeeTypeTestClass
<EmployeeType(Employee.A)> _
Public Sub AMethod()
End Sub
<EmployeeType(Employee.B)> _
Public Sub BMethod()
End Sub
<EmployeeType(Employee.C)> _
Public Sub CMethod()
End Sub
End Class
Sub Main()
Dim testClass As New EmployeeTypeTestClass()
Dim tcType As Type = testClass.GetType()
Dim mInfo As MethodInfo
For Each mInfo In tcType.GetMethods()
Dim attr As Attribute
For Each attr In Attribute.GetCustomAttributes(mInfo)
If TypeOf attr Is EmployeeTypeAttribute Then
Dim attrCustom As EmployeeTypeAttribute = CType(attr, EmployeeTypeAttribute)
Console.WriteLine("Method {0} has a pet {1} attribute.",mInfo.Name(), attrCustom.Pet.ToString())
End If
Next
Next
End Sub
End Module
Related examples in the same category