Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Un espace de noms est une construction C++ standard qui sert à grouper les types qui ont des fonctionnalités associées et à empêcher les collisions de noms dans les bibliothèques. Le système de type Windows Runtime nécessite que tous les types Windows Runtime publics, y compris ceux de votre propre code, soient déclarés dans un espace de noms au niveau de l’étendue de l’espace de noms. Les types publics déclarés au niveau de la portée globale ou imbriqués au sein d'une autre classe génèrent une erreur de compilation.
Un .winmd fichier doit avoir le même nom que l’espace de noms racine. Par exemple, une classe nommée A.B.C.MyClass peut être instanciée uniquement si elle est définie dans un fichier de métadonnées nommé A.winmd ou A.B.winmd .A.B.C.winmd Le nom de l’exécutable n’est pas requis pour correspondre au nom du .winmd fichier.
Visibilité du type
Dans un espace de noms, les types Windows Runtime, contrairement aux types C++ standard, ont une accessibilité privée ou publique. Par défaut, l'accessibilité est privée. Seul un type public visible aux métadonnées est utilisable à partir d'applications et de composants qui peuvent être écrits dans d'autres langages que C++. En général, les règles pour les types visibles sont plus restrictives que les règles pour les types non visibles car les types visibles ne peuvent pas exposer des concepts spécifiques C++ qui ne sont pas pris en charge dans les langages .NET ou JavaScript.
Remarque
Les métadonnées sont utilisées uniquement au moment de l'exécution par les langages.NET et JavaScript. Lorsqu’une application ou un composant C++ parle à une autre application ou composant C++, cela inclut les composants Windows, qui sont tous écrits en C++, alors aucune consommation au moment de l’exécution des métadonnées n’est requise.
Accessibilité membre et visibilité
Dans une classe ref, une interface ou un délégué privé, aucun membre n'est émis vers des métadonnées, même s'ils ont une accessibilité publique. Dans les classes ref publiques, vous pouvez contrôler la visibilité des membres dans les métadonnées indépendamment de leur accessibilité dans votre code source. Comme dans le langage C++ standard, appliquez le principe de privilège minimum ; ne rendez pas les membres visibles dans les métadonnées sauf nécessité absolue.
Utilisez les modificateurs d'accès suivants pour contrôler la visibilité des métadonnées et l'accessibilité du code source.
| Modificateur | Signification | Émis vers des métadonnées ? |
|---|---|---|
private |
Accessibilité par défaut. Même signification que dans le langage C++ standard. | Non |
protected |
Même signification qu'en C++ standard, à la fois dans l'application ou le composant et dans les métadonnées. | Oui |
public |
Même signification que dans le langage C++ standard. | Oui |
public protected ou protected public |
Accessibilité protégée dans les métadonnées, publique dans l'application ou le composant. | Oui |
protected private ou private protected |
Non visible dans les métadonnées ; accessibilité protégée dans l'application ou le composant. | |
internal ou private public |
Le membre est public dans l'application ou le composant, mais n'est pas visible dans les métadonnées. | Non |
Espaces de noms Windows Runtime
L’API Windows se compose de types déclarés dans les Windows::* espaces de noms. Ces espaces de noms sont réservés à windows et aucun type ne peut y être ajouté. Dans l’Explorateur d’objets, vous pouvez afficher ces espaces de noms dans le windows.winmd fichier. Pour obtenir la documentation relative à ces espaces de noms, consultez Informations de référence sur les API Windows des applications Windows Runtime.
espaces de noms (C++/CX)
Le C++/CX définit certains types dans ces espaces de noms dans le cadre de la projection du système de type Windows Runtime.
| Espace de noms | Description |
|---|---|
| default | Contient les types numérique et char16 intégrés. Ces types sont dans la portée dans chaque espace de noms et une instruction using n'est jamais requise. |
Platform |
Contient principalement des types publics qui correspondent aux types Windows Runtime tels que Array<T>, String, Guidet Boolean. Inclut également les types d'assistance spécialisés tels que Platform::Agile<T> et Platform::Box<T>. |
Platform::Collections |
Contient les classes de collection concrètes qui implémentent les interfaces IVectorde collection Windows Runtime, IMapet ainsi de suite. Ces types sont définis dans un fichier d’en-tête, collection.het non dans platform.winmd. |
Platform::Details |
Contient les types qui sont utilisés par le compilateur et ne sont pas destinés à la consommation publique. |