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.
Een naamruimte is een standaard C++-constructie voor het groeperen van typen die gerelateerde functionaliteit hebben en om naamconflicten in bibliotheken te voorkomen. Het Windows Runtime-typesysteem vereist dat alle openbare Windows Runtime-typen, inclusief die in uw eigen code, moeten worden gedeclareerd in een naamruimte binnen het bereik van de naamruimte. Openbare typen die zijn gedeclareerd op globaal bereik of genest in een andere klasse, veroorzaken een compilatietijdfout.
Een .winmd-bestand moet dezelfde naam hebben als de hoofdnaamruimte. Een klasse met de naam A.B.C.MyClass kan bijvoorbeeld alleen worden geïnstantieerd als deze is gedefinieerd in een metagegevensbestand met de naam A.winmd of A.B.winmd of A.B.C.winmd. De naam van het uitvoerbare bestand is niet vereist om overeen te komen met de .winmd-bestandsnaam.
Zichtbaarheid van type
In een naamruimte hebben Windows Runtime-typen, in tegenstelling tot standaard C++-typen, privé- of openbare toegankelijkheid. De toegankelijkheid is standaard privé. Alleen een openbaar type is zichtbaar voor metagegevens en kan daarom worden gebruikt vanuit apps en onderdelen die kunnen worden geschreven in andere talen dan C++. Over het algemeen zijn de regels voor zichtbare typen meer beperkend dan de regels voor niet-zichtbare typen, omdat zichtbare typen geen C++-specifieke concepten kunnen weergeven die niet worden ondersteund in .NET-talen of JavaScript.
Opmerking
Metagegevens worden alleen gebruikt tijdens runtime door .NET-talen en JavaScript. Wanneer een C++-app of -onderdeel met een andere C++-app of -onderdeel praat, inclusief Windows-onderdelen die allemaal zijn geschreven in C++, is er geen runtimeverbruik van metagegevens vereist.
Toegankelijkheid en zichtbaarheid van leden
In een privéverwijzingsklasse, interface of gemachtigde worden er geen leden verzonden naar metagegevens, zelfs als ze openbare toegankelijkheid hebben. In openbare ref-klassen kunt u de zichtbaarheid van leden in metagegevens onafhankelijk van hun toegankelijkheid in uw broncode beheren. Net als in standaard C++, past u het principe van minimale bevoegdheden toe; zorg ervoor dat uw leden niet zichtbaar zijn in metagegevens, tenzij ze absoluut moeten zijn.
Gebruik de volgende toegangsaanpassingen om de zichtbaarheid van metagegevens en de toegankelijkheid van broncode te beheren.
| Aanpasser | Betekenis | Verzonden naar metagegevens? |
|---|---|---|
private |
De standaardtoegankelijkheid. Dezelfde betekenis als in standaard C++. | Nee. |
protected |
Hetzelfde betekent als in standaard C++, zowel binnen de app of het onderdeel als in metagegevens. | Ja |
public |
Dezelfde betekenis als in standaard C++. | Ja |
public protected -of- protected public |
Beveiligde toegankelijkheid in metagegevens, openbaar binnen de app of het onderdeel. | Ja |
protected private of private protected |
Niet zichtbaar in metagegevens; beveiligde toegankelijkheid binnen de app of het onderdeel. | |
internal of private public |
Het lid is openbaar in de app of het onderdeel, maar is niet zichtbaar in metagegevens. | Nee. |
Windows Runtime-naamruimten
De Windows-API bestaat uit typen die worden gedeclareerd in de Windows::*-naamruimten. Deze naamruimten zijn gereserveerd voor Windows en typen kunnen niet aan deze worden toegevoegd. In de objectbrowser kunt u deze naamruimten weergeven in het bestand windows.winmd. Zie Windows API voor documentatie over deze naamruimten.
C++/CX-naamruimten
De C++/CX definieert bepaalde typen in deze naamruimten als onderdeel van de projectie van het Windows Runtime-typesysteem.
| Namespace | Beschrijving |
|---|---|
| standaard | Bevat de ingebouwde numerieke en teken16-typen. Deze typen vallen binnen het bereik van elke naamruimte en een using instructie is nooit vereist. |
Platform |
Bevat voornamelijk openbare typen die overeenkomen met Windows Runtime-typen, zoals Array<T>, Stringen GuidBoolean. Bevat ook gespecialiseerde helpertypen zoals Platform::Agile<T> en Platform::Box<T>. |
Platform::Collections |
Bevat de concrete verzamelingsklassen die de Windows Runtime-verzamelingsinterfaces IVectorimplementeren, IMapenzovoort. Deze typen worden gedefinieerd in een headerbestand, collection.h, niet in platform.winmd. |
Platform::Details |
Bevat typen die door de compiler worden gebruikt en die niet bedoeld zijn voor openbaar gebruik. |