Taal

Weerspiegeling in .NET Framework voor Windows Store-apps

.NET Framework bevat een set reflectietypen en leden voor gebruik in Windows 8.x Store-apps. Deze typen en leden zijn beschikbaar in het volledige .NET Framework en in .NET voor Windows Store-apps. In dit artikel worden de belangrijkste verschillen tussen deze en hun tegenhangers in .NET Framework 4 en eerdere versies uitgelegd.

Als u een Windows 8.x Store-app maakt, moet u de weerspiegelingstypen en leden in .NET gebruiken voor Windows 8.x Store-apps. Deze typen en leden zijn ook beschikbaar, maar zijn niet vereist voor gebruik in desktop-apps, zodat u dezelfde code voor beide typen apps kunt gebruiken.

TypeInfo en Assembly Laden

In .NET voor Windows 8.x Store-apps bevat de TypeInfo klasse een deel van de functionaliteit van de .NET Framework 4-klasseType. Een Type object vertegenwoordigt een verwijzing naar een typedefinitie, terwijl een TypeInfo object de typedefinitie zelf vertegenwoordigt. Hierdoor kunt u objecten bewerken Type zonder dat de runtime de assembly waarnaar ze verwijzen hoeft te laden. Als u het bijbehorende TypeInfo object ophaalt, wordt de assembly gedwongen om te laden.

TypeInfo bevat veel van de leden die beschikbaar zijn op Type, en veel reflectie-eigenschappen in .NET voor Windows 8.x Store-apps retourneren verzamelingen van TypeInfo-objecten. Gebruik de TypeInfo methode om een Type object op te halen uit een GetTypeInfo object.

Querymethoden

In .NET voor Windows 8.x Store-apps gebruikt u de weerspiegelingseigenschappen die verzamelingen retourneren IEnumerable<T> in plaats van methoden die matrices retourneren. Reflectiecontexten kunnen luie verwerking van deze verzamelingen implementeren voor grote assemblages of type.

Reflectie-eigenschappen retourneren alleen de gedeclareerde methoden voor een bepaald object in plaats van de overervingsstructuur te doorlopen. Bovendien gebruiken BindingFlags ze geen parameters voor het filteren. In plaats daarvan vindt filteren plaats in gebruikerscode, met behulp van LINQ-query's op de geretourneerde verzamelingen. Voor weerspiegelingsobjecten die afkomstig zijn van de runtime (bijvoorbeeld als gevolg van typeof(Object)), kunt u het beste de overnamestructuur doorkruisen met behulp van de helpermethoden van de RuntimeReflectionExtensions klasse. Gebruikers van objecten uit aangepaste reflectiecontexten kunnen deze methoden niet gebruiken en moeten de overervingsstructuur zelf doorlopen.

Beperkingen

In een Windows 8.x Store-app is de toegang tot sommige .NET Framework-typen en leden beperkt. U kunt bijvoorbeeld geen .NET Framework-methoden aanroepen die niet zijn opgenomen in .NET voor Windows 8.x Store-apps met behulp van een MethodInfo object. Daarnaast worden bepaalde typen en leden die niet als veilig worden beschouwd binnen de context van een Windows 8.x Store-app geblokkeerd, net als MarshalWindowsRuntimeMarshal leden. Deze beperking is alleen van invloed op .NET Framework-typen en -leden; u kunt uw code of code van derden aanroepen zoals u dat normaal zou doen.

Zie ook