Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In het volgende voorbeeld ziet u hoe LINQ kan worden gebruikt met weerspiegeling om specifieke metagegevens op te halen over methoden die overeenkomen met een opgegeven zoekcriterium. In dit geval vindt de query de namen van alle methoden in de assembly die opsommingsbare typen, zoals matrices, retourneren.
Voorbeeld
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
In het voorbeeld wordt de Assembly.GetTypes methode gebruikt om een matrix met typen in de opgegeven assembly te retourneren. Het Where-clause-filter wordt toegepast zodat alleen openbare typen worden geretourneerd. Voor elk openbaar type wordt een subquery gegenereerd met behulp van de MethodInfo matrix die wordt geretourneerd door de Type.GetMethods aanroep. Deze resultaten worden gefilterd om alleen de methoden te retourneren waarvan het retourtype een matrix is of een ander type dat wordt geïmplementeerd IEnumerable<T>. Ten slotte worden deze resultaten gegroepeerd met behulp van de typenaam als sleutel.