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


VB.NET Attribute.GetCustomAttributes方法代碼示例

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


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

示例1: DemoModule

' 導入命名空間
Imports System.Reflection
Imports System.ComponentModel

' Give the Module some attributes.
<Module: Description("A sample description")> 

' Make the CLSCompliant attribute False.
' The CLSCompliant attribute is applicable for /target:module.
<Module: CLSCompliant(False)> 

Module DemoModule

    Sub Main()
        ' Get the Module type to access its metadata.
        Dim modType As Reflection.Module = GetType(DemoModule).Module
        Dim attr As Attribute
        ' Iterate through all the attributes for the module.
        For Each attr In Attribute.GetCustomAttributes(modType)
            ' Check for the Description attribute.
            If TypeOf attr Is DescriptionAttribute Then
                ' Convert the attribute to access its data.
                Dim descAttr As DescriptionAttribute = _
                    CType(attr, DescriptionAttribute)
                Console.WriteLine("Module {0} has the description ""{1}"".", _
                    modType.Name, descAttr.Description)

            ' Check for the CLSCompliant attribute.
            ElseIf TypeOf attr Is CLSCompliantAttribute Then
                ' Convert the attribute to access its data.
                Dim CLSCompAttr As CLSCompliantAttribute = _
                    CType(attr, CLSCompliantAttribute)
                Dim strCompliant As String
                If CLSCompAttr.IsCompliant Then
                    strCompliant = "is"
                Else
                    strCompliant = "is not"
                End If
                Console.WriteLine("Module {0} {1} CLSCompliant.", _
                    modType.Name, strCompliant)
            End If
        Next
    End Sub
End Module

' Output:
' Module CustAttrs2VB.exe has the description "A sample description".
' Module CustAttrs2VB.exe is not CLSCompliant.
開發者ID:VB.NET開發者,項目名稱:System,代碼行數:48,代碼來源:Attribute.GetCustomAttributes

示例2: DemoModule

' 導入命名空間
Imports System.Reflection
Imports System.ComponentModel

Module DemoModule
    Public Class AClass
        ' Add Description and ParamArray (with the keyword) attributes.
        Public Sub ParamArrayAndDesc( _
            <Description("This argument is a ParamArray")> _
            ByVal ParamArray args() As Integer)
        End Sub
    End Class

    Sub Main()
        ' Get the Class type to access its metadata.
        Dim clsType As Type = GetType(AClass)
        ' Get the type information for the method.
        Dim mInfo As MethodInfo = clsType.GetMethod("ParamArrayAndDesc")
        ' Get the Parameter information for the method.
        Dim pInfo() As ParameterInfo = mInfo.GetParameters()
        Dim attr As Attribute
        ' Iterate through each attribute of the parameter.
        For Each attr In Attribute.GetCustomAttributes(pInfo(0))
            ' Check for the ParamArray attribute.
            If TypeOf attr Is ParamArrayAttribute Then
                ' Convert the attribute to access its data.
                Dim paAttr As ParamArrayAttribute = _
                    CType(attr, ParamArrayAttribute)
                Console.WriteLine("Parameter {0} has the " + _
                    "ParamArray attribute.", pInfo(0).Name)
            ' Check for the Description attribute.
            ElseIf TypeOf attr Is DescriptionAttribute Then
                ' Convert the attribute to access its data.
                Dim descAttr As DescriptionAttribute = _
                    CType(attr, DescriptionAttribute)
                Console.WriteLine("Parameter {0} has a description " + _
                    "attribute. The description is:", pInfo(0).Name)
                Console.WriteLine(descAttr.Description)
            End If
        Next
    End Sub
End Module

' Output:
' Parameter args has a description attribute. The description is:
' This argument is a ParamArray
' Parameter args has the ParamArray attribute.
開發者ID:VB.NET開發者,項目名稱:System,代碼行數:47,代碼來源:Attribute.GetCustomAttributes

示例3: Win32

' 導入命名空間
Imports System.Reflection
Imports System.Security
Imports System.Runtime.InteropServices

' Define an enumeration of Win32 unmanaged types
Public Enum UnmanagedType
    User
    GDI
    Kernel
    Shell
    Networking
    Multimedia
End Enum 'UnmanagedType

' Define the Unmanaged attribute.
Public Class UnmanagedAttribute 
             Inherits Attribute

    ' Storage for the UnmanagedType value.
    Protected thisType As UnmanagedType
    
    ' Set the unmanaged type in the constructor.
    Public Sub New(ByVal type As UnmanagedType) 
        thisType = type
    End Sub
    
    ' Define a property to get and set the UnmanagedType value.
    Public Property Win32Type() As UnmanagedType 
        Get
            Return thisType
        End Get
        Set
            thisType = Win32Type
        End Set
    End Property
End Class

' Create a class for an imported Win32 unmanaged function.
Public Class Win32
    <DllImport("user32.dll", CharSet:=CharSet.Unicode)> _
    Public Shared Function MessageBox(ByVal hWnd As Integer, _
                                      ByVal Text As String, _
                                      ByVal caption As String, _
                                      ByVal type As Integer) As Integer
    End Function 'MessageBox
End Class

Public Class AClass
    ' Add some attributes to Win32CallMethod.
    <Obsolete("This method is obsolete. Use managed MsgBox instead."), _
     Unmanaged(UnmanagedType.User)>  _
    Public Sub Win32CallMethod() 
        Win32.MessageBox(0, "This is an unmanaged call.", "Caution!", 0)    
    End Sub
End Class

Class DemoClass
    Shared Sub Main(ByVal args() As String) 
        ' Get the AClass type to access its metadata.
        Dim clsType As Type = GetType(AClass)
        ' Get the type information for Win32CallMethod.
        Dim mInfo As MethodInfo = clsType.GetMethod("Win32CallMethod")
        If Not (mInfo Is Nothing) Then
            ' Iterate through all the attributes of the method.
            Dim attr As Attribute
            For Each attr In  Attribute.GetCustomAttributes(mInfo)
                ' Check for the Obsolete attribute.
                If attr.GetType().Equals(GetType(ObsoleteAttribute)) Then
                    Console.WriteLine("Method {0} is obsolete. The message is:", mInfo.Name)
                    Console.WriteLine("  ""{0}""", CType(attr, ObsoleteAttribute).Message)
                ' Check for the Unmanaged attribute.
                ElseIf attr.GetType().Equals(GetType(UnmanagedAttribute)) Then
                    Console.WriteLine("This method calls unmanaged code.")
                    Console.WriteLine( _
                            String.Format("The Unmanaged attribute type is {0}.", _
                            CType(attr, UnmanagedAttribute).Win32Type))
                    Dim myCls As New AClass()
                    myCls.Win32CallMethod()
                End If
            Next attr
        End If
    End Sub
End Class
開發者ID:VB.NET開發者,項目名稱:System,代碼行數:84,代碼來源:Attribute.GetCustomAttributes

輸出:

First, the compilation yields the warning, "...This method is 
obsolete. Use managed MsgBox instead."
Second, execution yields a message box with a title of "Caution!" 
and message text of "This is an unmanaged call." 
Third, the following text is displayed in the console window:

Method Win32CallMethod is obsolete. The message is:
"This method is obsolete. Use managed MsgBox instead."
This method calls unmanaged code.
The Unmanaged attribute type is User.

示例4: Example

' 導入命名空間
Imports System.Reflection

<Assembly: AssemblyTitle("CustAttrs1VB")> 
<Assembly: AssemblyDescription("GetCustomAttributes() Demo")> 
<Assembly: AssemblyCompany("Microsoft")> 

Module Example
    Sub Main()
        ' Get the Assembly type to access its metadata.
        Dim assy As Reflection.Assembly = GetType(Example).Assembly

        ' Iterate through all the attributes for the assembly.
        For Each attr As Attribute In Attribute.GetCustomAttributes(assy)
            ' Check for the AssemblyTitle attribute.
            If TypeOf attr Is AssemblyTitleAttribute Then
                ' Convert the attribute to access its data.
                Dim attrTitle As AssemblyTitleAttribute = _
                    CType(attr, AssemblyTitleAttribute)
                Console.WriteLine("Assembly title is ""{0}"".", _
                    attrTitle.Title)

            ' Check for the AssemblyDescription attribute.
            ElseIf TypeOf attr Is AssemblyDescriptionAttribute Then
                ' Convert the attribute to access its data.
                Dim attrDesc As AssemblyDescriptionAttribute = _
                    CType(attr, AssemblyDescriptionAttribute)
                Console.WriteLine("Assembly description is ""{0}"".", _
                    attrDesc.Description)

            ' Check for the AssemblyCompany attribute.
            ElseIf TypeOf attr Is AssemblyCompanyAttribute Then
                ' Convert the attribute to access its data.
                Dim attrComp As AssemblyCompanyAttribute = _
                    CType(attr, AssemblyCompanyAttribute)
                Console.WriteLine("Assembly company is {0}.", _
                    attrComp.Company)
            End If
        Next
    End Sub
End Module
開發者ID:VB.NET開發者,項目名稱:System,代碼行數:41,代碼來源:Attribute.GetCustomAttributes

輸出:

Assembly company is Microsoft.
Assembly description is "GetCustomAttributes() Demo".
Assembly title is "CustAttrs1VB".


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