當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET ParameterInfo.IsDefined方法代碼示例

本文整理匯總了VB.NET中System.Reflection.ParameterInfo.IsDefined方法的典型用法代碼示例。如果您正苦於以下問題:VB.NET ParameterInfo.IsDefined方法的具體用法?VB.NET ParameterInfo.IsDefined怎麽用?VB.NET ParameterInfo.IsDefined使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Reflection.ParameterInfo的用法示例。


在下文中一共展示了ParameterInfo.IsDefined方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的VB.NET代碼示例。

示例1: MyAttribute

' 導入命名空間
Imports System.Reflection

' Define a custom attribute with one named parameter.
<AttributeUsage(AttributeTargets.Parameter)> _
Public Class MyAttribute
    Inherits Attribute
    Private myName As String

    Public Sub New(ByVal name As String)
        myName = name
    End Sub 

    Public ReadOnly Property Name() As String
        Get
            Return myName
        End Get
    End Property
End Class 

' Derive another custom attribute from MyAttribute
<AttributeUsage(AttributeTargets.Parameter)> _
Public Class MyDerivedAttribute
    Inherits MyAttribute

    Public Sub New(ByVal name As String)
        MyBase.New(name)
    End Sub 
End Class

' Define a class with a method that has three parameters. Apply
' MyAttribute to one parameter, MyDerivedAttribute to another, and
' no attributes to the third. 
Public Class MyClass1

    Public Sub MyMethod(<MyAttribute("This is an example parameter attribute")> _
                        ByVal i As Integer, _
                        <MyDerivedAttribute("This is another parameter attribute")> _
                        ByVal j As Integer, _
                        ByVal k As Integer)
        Return
    End Sub 
End Class 

Public Class MemberInfo_GetCustomAttributes

    Public Shared Sub Main()
        ' Get the type of the class 'MyClass1'.
        Dim myType As Type = GetType(MyClass1)
        ' Get the members associated with the class 'MyClass1'.
        Dim myMethods As MethodInfo() = myType.GetMethods()

        ' For each method of the class 'MyClass1', display all the parameters
        ' to which MyAttribute or its derived types have been applied.
        For Each mi As MethodInfo In myMethods
            ' Get the parameters for the method.
            Dim myParameters As ParameterInfo() = mi.GetParameters()
            If myParameters.Length > 0 Then
                Console.WriteLine(vbCrLf & "The following parameters of {0} have MyAttribute or a derived type: ", mi)
                For Each pi As ParameterInfo In myParameters
                    If pi.IsDefined(GetType(MyAttribute), False) Then
                        Console.WriteLine("Parameter {0}, name = {1}, type = {2}", _
                            pi.Position, pi.Name, pi.ParameterType)
                    End If
                Next
            End If
        Next
    End Sub 
End Class
開發者ID:VB.NET開發者,項目名稱:System.Reflection,代碼行數:69,代碼來源:ParameterInfo.IsDefined

輸出:

The following parameters of Void MyMethod(Int32, Int32, Int32) have MyAttribute or a derived type:
Parameter 0, name = i, type = System.Int32
Parameter 1, name = j, type = System.Int32

The following parameters of Boolean Equals(System.Object) have MyAttribute or a derived type:


注:本文中的System.Reflection.ParameterInfo.IsDefined方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。