本文整理汇总了VB.NET中System.Attribute.GetCustomAttribute方法的典型用法代码示例。如果您正苦于以下问题:VB.NET Attribute.GetCustomAttribute方法的具体用法?VB.NET Attribute.GetCustomAttribute怎么用?VB.NET Attribute.GetCustomAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Attribute
的用法示例。
在下文中一共展示了Attribute.GetCustomAttribute方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的VB.NET代码示例。
示例1: New
' Example for the Attribute.GetCustomAttribute( ParameterInfo, Type, Boolean )
' method.
Imports System.Reflection
Namespace NDP_UE_VB
' Define a custom parameter attribute that takes a single message argument.
<AttributeUsage(AttributeTargets.Parameter)> _
Public Class ArgumentUsageAttribute
Inherits Attribute
' This is the attribute constructor.
Public Sub New(UsageMsg As String)
Me.usageMsg = UsageMsg
End Sub
' usageMsg is storage for the attribute message.
Protected usageMsg As String
' This is the Message property for the attribute.
Public Property Message() As String
Get
Return usageMsg
End Get
Set
usageMsg = value
End Set
End Property
End Class
Public Class BaseClass
' Assign an ArgumentUsage attribute to the strArray parameter.
' Assign a ParamArray attribute to the strList parameter.
Public Overridable Sub TestMethod( _
<ArgumentUsage("Must pass an array here.")> _
strArray() As String, _
ParamArray strList() As String)
End Sub
End Class
Public Class DerivedClass
Inherits BaseClass
' Assign an ArgumentUsage attribute to the strList parameter.
' Assign a ParamArray attribute to the strList parameter.
Public Overrides Sub TestMethod( _
strArray() As String, _
<ArgumentUsage("Can pass a parameter list or array here.")> _
ParamArray strList() As String)
End Sub
End Class
Class DemoClass
Shared Sub DisplayParameterAttributes(mInfo As MethodInfo, _
pInfoArray() As ParameterInfo, includeInherited As Boolean)
Console.WriteLine( vbCrLf & _
"Parameter attribute information for method ""{0}""" & _
vbCrLf & "includes inheritance from the base class: {1}.", _
mInfo.Name, IIf(includeInherited, "Yes", "No"))
' Display attribute information for the parameters.
Dim paramInfo As ParameterInfo
For Each paramInfo In pInfoArray
' See if the ParamArray attribute is defined.
Dim isDef As Boolean = _
Attribute.IsDefined(paramInfo, GetType(ParamArrayAttribute))
If isDef Then
Console.WriteLine( vbCrLf & " The " & _
"ParamArray attribute is defined for " & _
vbCrLf & " parameter {0} of method {1}.", _
paramInfo.Name, mInfo.Name)
End If
' See if ParamUsageAttribute is defined.
' If so, display a message.
Dim usageAttr As ArgumentUsageAttribute = _
Attribute.GetCustomAttribute(paramInfo, _
GetType(ArgumentUsageAttribute), _
includeInherited)
If Not (usageAttr Is Nothing) Then
Console.WriteLine( vbCrLf & " The " & _
"ArgumentUsage attribute is defined for " & _
vbCrLf & " parameter {0} of method {1}.", _
paramInfo.Name, mInfo.Name)
Console.WriteLine( vbCrLf & _
" The usage message for {0} is: " & _
vbCrLf & " ""{1}"".", _
paramInfo.Name, usageAttr.Message)
End If
Next paramInfo
End Sub
Public Shared Sub Main()
Console.WriteLine( _
"This example of Attribute.GetCustomAttribute" & _
"( ParameterInfo, Type, Boolean )" & vbCrLf & _
"generates the following output." )
' Get the class type, and then get the MethodInfo object
' for TestMethod to access its metadata.
Dim clsType As Type = GetType(DerivedClass)
Dim mInfo As MethodInfo = clsType.GetMethod("TestMethod")
' Iterate through the ParameterInfo array for the method parameters.
Dim pInfoArray As ParameterInfo() = mInfo.GetParameters()
If Not (pInfoArray Is Nothing) Then
DisplayParameterAttributes(mInfo, pInfoArray, False)
DisplayParameterAttributes(mInfo, pInfoArray, True)
Else
Console.WriteLine( _
"The parameters information could " & _
"not be retrieved for method {0}.", mInfo.Name)
End If
End Sub
End Class
End Namespace ' NDP_UE_VB
' This example of Attribute.GetCustomAttribute( ParameterInfo, Type, Boolean )
输出:
Parameter attribute information for method "TestMethod" includes inheritance from the base class: No. The ParamArray attribute is defined for parameter strList of method TestMethod. The ArgumentUsage attribute is defined for parameter strList of method TestMethod. The usage message for strList is: "Can pass a parameter list or array here.". Parameter attribute information for method "TestMethod" includes inheritance from the base class: Yes. The ArgumentUsage attribute is defined for parameter strArray of method TestMethod. The usage message for strArray is: "Must pass an array here.". The ParamArray attribute is defined for parameter strList of method TestMethod. The ArgumentUsage attribute is defined for parameter strList of method TestMethod. The usage message for strList is: "Can pass a parameter list or array here.".
示例2: DemoModule
' 导入命名空间
Imports System.Reflection
Module DemoModule
Public Class TestClass
' Assign the Obsolete attribute to a method.
<Obsolete("This method is obsolete. Use Method2() instead.")> _
Public Sub Method1()
End Sub
Public Sub Method2()
End Sub
End Class
Sub Main()
' Get the class type to access its metadata.
Dim clsType As Type = GetType(TestClass)
' Get the MethodInfo object for Method1.
Dim mInfo As MethodInfo = clsType.GetMethod("Method1")
' See if the Obsolete attribute is defined for this method.
Dim isDef As Boolean = Attribute.IsDefined(mInfo, _
GetType(ObsoleteAttribute))
Dim strDef As String
If isDef = True Then
strDef = "is"
Else
strDef = "is not"
End If
' Display the results.
Console.WriteLine("The Obsolete attribute {0} defined for " & _
"method {1} of class {2}.", strDef, mInfo.Name, clsType.Name)
' If it's defined, display the attribute's message.
If isDef = True Then
Dim attr As Attribute = Attribute.GetCustomAttribute(mInfo, _
GetType(ObsoleteAttribute))
If Not attr Is Nothing And TypeOf attr Is ObsoleteAttribute Then
Dim obsAttr As ObsoleteAttribute = _
CType(attr, ObsoleteAttribute)
Console.WriteLine("The message is: ""{0}""", obsAttr.Message)
Else
Console.WriteLine("The message could not be retrieved.")
End If
End If
End Sub
End Module
' Output:
' The Obsolete attribute is defined for method Method1 of class TestClass.
' The message is: "This method is obsolete. Use Method2() instead."
示例3: DemoModule
' 导入命名空间
Imports System.Reflection
' Add an AssemblyDescription attribute.
<Assembly: AssemblyDescription("A sample description")>
Module DemoModule
Sub Main()
' Get the assembly for this module.
Dim assy As System.Reflection.Assembly = GetType(DemoModule).Assembly
' Store the assembly name.
Dim assyName As String = assy.GetName().Name
' See if the AssemblyDescription attribute is defined.
If Attribute.IsDefined(assy, GetType(AssemblyDescriptionAttribute)) _
Then
' Affirm that the attribute is defined. Assume the filename of
' this code example is "IsDef1VB".
Console.WriteLine("The AssemblyDescription attribute is " & _
"defined for assembly {0}.", assyName)
' Get the description attribute itself.
Dim attr As Attribute = Attribute.GetCustomAttribute( _
assy, GetType(AssemblyDescriptionAttribute))
' Display the description.
If Not attr Is Nothing And _
TypeOf attr Is AssemblyDescriptionAttribute Then
Dim adAttr As AssemblyDescriptionAttribute = _
CType(attr, AssemblyDescriptionAttribute)
Console.WriteLine("The description is " & _
Chr(34) & "{0}" & Chr(34) & ".", adAttr.Description)
Else
Console.WriteLine("The description could not be retrieved.")
End If
Else
Console.WriteLine("The AssemblyDescription attribute is not " & _
"defined for assembly {0}.", assyName)
End If
End Sub
End Module
' Output:
' The AssemblyDescription attribute is defined for assembly IsDef1VB.
' The description is "A sample description".
示例4: DemoModule
' 导入命名空间
Imports System.Reflection
Imports System.Diagnostics
' Add the Debuggable attribute to the module.
<Module: Debuggable(True, False)>
Module DemoModule
Sub Main()
' Get the module type information to access its metadata.
Dim modType As Type = GetType(DemoModule)
' See if the Debuggable attribute is defined.
Dim isDef As Boolean = Attribute.IsDefined(modType.Module, _
GetType(DebuggableAttribute))
Dim strDef As String
If isDef = True Then
strDef = "is"
Else
strDef = "is not"
End If
' Display the result
Console.WriteLine("The debuggable attribute {0} defined for " & _
"module {1}.", strDef, modType.Name)
' If the attribute is defined, display the JIT settings.
If isDef = True Then
' Retrieve the attribute itself.
Dim attr As Attribute = _
Attribute.GetCustomAttribute(modType.Module, _
GetType(DebuggableAttribute))
If Not attr Is Nothing And TypeOf attr Is DebuggableAttribute Then
Dim dbgAttr As DebuggableAttribute = _
CType(attr, DebuggableAttribute)
Console.WriteLine("JITTrackingEnabled is {0}.", _
dbgAttr.IsJITTrackingEnabled.ToString())
Console.WriteLine("JITOptimizerDisabled is {0}.", _
dbgAttr.IsJITOptimizerDisabled.ToString())
Else
Console.WriteLine("The Debuggable attribute could " & _
"not be retrieved.")
End If
End If
End Sub
End Module
' Output:
' The debuggable attribute is defined for module DemoModule.
' JITTrackingEnabled is True.
' JITOptimizerDisabled is False.
示例5: New
' Example for the Attribute.GetCustomAttribute( ParameterInfo, Type ) method.
Imports System.Reflection
Namespace NDP_UE_VB
' Define a custom parameter attribute that takes a single message argument.
<AttributeUsage(AttributeTargets.Parameter)> _
Public Class ArgumentUsageAttribute
Inherits Attribute
' This is the attribute constructor.
Public Sub New(UsageMsg As String)
Me.usageMsg = UsageMsg
End Sub
' usageMsg is storage for the attribute message.
Protected usageMsg As String
' This is the Message property for the attribute.
Public Property Message() As String
Get
Return usageMsg
End Get
Set
usageMsg = value
End Set
End Property
End Class
Public Class BaseClass
' Assign an ArgumentUsage attribute to the strArray parameter.
' Assign a ParamArray attribute to strList using the ParamArray keyword.
Public Overridable Sub TestMethod( _
<ArgumentUsage("Must pass an array here.")> _
strArray() As String, _
ParamArray strList() As String)
End Sub
End Class
Public Class DerivedClass
Inherits BaseClass
' Assign an ArgumentUsage attribute to the strList parameter.
' Assign a ParamArray attribute to strList using the ParamArray keyword.
Public Overrides Sub TestMethod( _
strArray() As String, _
<ArgumentUsage("Can pass a parameter list or array here.")> _
ParamArray strList() As String)
End Sub
End Class
Module CustomParamDemo
Sub Main()
Console.WriteLine( _
"This example of Attribute.GetCustomAttribute" & _
"( ParameterInfo, Type )" & vbCrLf & _
"generates the following output.")
' Get the class type, and then get the MethodInfo object
' for TestMethod to access its metadata.
Dim clsType As Type = GetType(DerivedClass)
Dim mInfo As MethodInfo = clsType.GetMethod("TestMethod")
' Iterate through the ParameterInfo array for the method parameters.
Dim pInfoArray As ParameterInfo() = mInfo.GetParameters()
If Not (pInfoArray Is Nothing) Then
Dim paramInfo As ParameterInfo
For Each paramInfo In pInfoArray
' See if the ParamArray attribute is defined.
Dim isDef As Boolean = _
Attribute.IsDefined(paramInfo, _
GetType(ParamArrayAttribute))
If isDef Then
Console.WriteLine( vbCrLf & _
"The ParamArray attribute is defined for " & _
vbCrLf & "parameter {0} of method {1}.", _
paramInfo.Name, mInfo.Name)
End If
' See if ParamUsageAttribute is defined.
' If so, display a message.
Dim usageAttr As ArgumentUsageAttribute = _
Attribute.GetCustomAttribute(paramInfo, _
GetType(ArgumentUsageAttribute))
If Not (usageAttr Is Nothing) Then
Console.WriteLine( vbCrLf & "The " & _
"ArgumentUsage attribute is defined for " & _
vbCrLf & "parameter {0} of method {1}.", _
paramInfo.Name, mInfo.Name)
Console.WriteLine( vbCrLf & _
" The usage message for {0} is: " & _
vbCrLf & " ""{1}"".", _
paramInfo.Name, usageAttr.Message)
End If
Next paramInfo
Else
Console.WriteLine( _
"The parameters information could " & _
"not be retrieved for method {0}.", mInfo.Name)
End If
End Sub
End Module ' DemoClass
End Namespace ' NDP_UE_VB
' This example of Attribute.GetCustomAttribute( ParameterInfo, Type )
输出:
The ArgumentUsage attribute is defined for parameter strArray of method TestMethod. The usage message for strArray is: "Must pass an array here.". The ParamArray attribute is defined for parameter strList of method TestMethod. The ArgumentUsage attribute is defined for parameter strList of method TestMethod. The usage message for strList is: "Can pass a parameter list or array here.".