共用方式為


操作說明:使用反映查詢組件的中繼資料 (LINQ) (Visual Basic)

下列範例示範如何搭配使用 LINQ 與反射,來擷取符合所指定搜尋準則之方法的特定中繼資料。 在此情況下,查詢會尋找組件中所有方法的名稱,而這些方法會傳回陣列這類可列舉類型。

範例

Imports System.Linq
Imports System.Reflection  

Module Module1  
    Sub Main()  
        Dim asmbly As Assembly =
            Assembly.Load("System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken= b77a5c561934e089")  
  
        Dim pubTypesQuery = From type In asmbly.GetTypes()
                            Where type.IsPublic
                            From method In type.GetMethods()
                            Where method.ReturnType.IsArray = True
                            Let name = method.ToString()
                            Let typeName = type.ToString()
                            Group name By typeName Into methodNames = Group  
  
        Console.WriteLine("Getting ready to iterate")  
        For Each item In pubTypesQuery  
            Console.WriteLine(item.methodNames)  
  
            For Each type In item.methodNames  
                Console.WriteLine(" " & type)  
            Next  
        Next  
        Console.WriteLine("Press any key to exit... ")  
        Console.ReadKey()  
    End Sub  
End Module  

這個範例會使用 Assembly.GetTypes 方法,以傳回所指定組件中的類型陣列。 會套用 Where 子句篩選,只傳回公用類型。 對於每一個公用類型,會使用從 Type.GetMethods 呼叫傳回的 MethodInfo 陣列來產生子查詢。 這些結果會進行篩選,僅傳回其傳回型別為陣列的方法,或為實作 IEnumerable<T> 之類型的方法。 最後,會使用類型名稱作為索引鍵來群組這些結果。

另請參閱