Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Contoh berikut menunjukkan bagaimana LINQ dapat digunakan dengan refleksi untuk mengambil metadata tertentu tentang metode yang cocok dengan kriteria pencarian tertentu. Dalam hal ini, kueri akan menemukan nama semua metode dalam rakitan yang mengembalikan jenis yang dapat dijumlahkan seperti array.
Contoh
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
Contoh menggunakan metode Assembly.GetTypes untuk mengembalikan array jenis dalam rakitan yang ditentukan. Filter Where Clause diterapkan sehingga hanya jenis publik yang dikembalikan. Untuk setiap tipe publik, subkueri dihasilkan dengan menggunakan array MethodInfo yang dikembalikan dari panggilan Type.GetMethods. Hasil ini difilter untuk mengembalikan hanya metode yang jenis pengembaliannya adalah array atau jenis lain yang mengimplementasikan IEnumerable<T>. Akhirnya, hasil ini dikelompokkan dengan menggunakan nama jenis sebagai kunci.