Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki örnekte LINQ'in belirtilen arama ölçütüyle eşleşen yöntemlerle ilgili belirli meta verileri almak için yansımayla nasıl kullanılabileceğini gösterir. Bu durumda sorgu, diziler gibi numaralandırılabilir türler döndüren derlemedeki tüm yöntemlerin adlarını bulur.
Örnek
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
Örnek, belirtilen derlemede bir tür dizisi döndürmek için Assembly.GetTypes yöntemini kullanır. Where Clause filtresi, yalnızca genel erişimli türler döndürülsün diye kullanılır. Her ortak tür için, MethodInfo çağrısından döndürülen Type.GetMethods dizisi kullanılarak bir alt sorgu oluşturulur. Bu sonuçlar yalnızca dönüş türü bir dizi veya IEnumerable<T>uygulayan bir tür olan yöntemleri döndürecek şekilde filtrelenir. Son olarak, bu sonuçlar tür adı anahtar olarak kullanılarak gruplandırılır.