Partager via


Vue d'ensemble des métadonnées

Mise à jour : novembre 2007

Les métadonnées sont des informations binaires décrivant votre programme ; elles sont stockées dans un fichier exécutable portable (fichier PE) du Common Language Runtime ou en mémoire. Quand vous compilez votre code dans un fichier PE, les métadonnées sont insérées dans une partie du fichier, tandis que votre code est converti en langage MSIL (Microsoft Intermediate Language) et inséré dans une autre partie du fichier. Les types et membre définis et référencés dans un module ou un assembly sont décrits au sein des métadonnées. Quand le code est exécuté, le runtime charge les métadonnées en mémoire et y fait référence pour découvrir les informations concernant les classes de votre code, les membres, l'héritage, etc.

Les métadonnées décrivent tous les types et membres définis dans votre code sous une forme indépendante du langage. Les métadonnées stockent les informations suivantes :

  • Description de l'assembly.

    • Identité (nom, version, culture, clé publique).

    • Les types exportés.

    • Les autres assemblys dont dépend cet assembly.

    • Les autorisations de sécurité nécessaires à l'exécution.

  • Description des types.

    • Nom, visibilité, classe de base et interfaces implémentées.

    • Membres (méthodes, champs, propriétés, événements, types imbriqués).

  • Attributs.

    • Éléments descriptifs supplémentaires qui modifient les types et les membres.

Avantages des métadonnées

Les métadonnées sont la clé d'un modèle de programmation plus simple, car elles suppriment la nécessité de fichiers IDL (Interface Definition Language), de fichiers d'en-tête ou de toute méthode externe de référence aux composants. Les métadonnées permettent aux langages .NET de se décrire eux-mêmes automatiquement d'une manière indépendante du langage, transparente aussi bien au développeur qu'à l'utilisateur. En outre, les métadonnées sont extensibles via l'utilisation d'attributs. Les métadonnées offrent les principaux avantages suivants :

  • Fichiers autodescriptifs.

    Les modules et assemblys du Common Language Runtime sont autodescriptifs. Les métadonnées d'un module contiennent tous les éléments nécessaires pour interagir avec un autre module. Les métadonnées offrent automatiquement la fonctionnalité IDL du modèle COM, vous permettant d'utiliser un seul fichier pour la définition et l'implémentation. Les modules et assemblys du runtime ne nécessitent même pas l'inscription dans le système d'exploitation. En conséquence, les descriptions utilisées par le runtime reflètent toujours le code réel de votre fichier compilé, ce qui accroît la fiabilité de l'application.

  • Interopérabilité des langages et design à base de composants plus simple.

    Les métadonnées fournissent toutes les informations requises concernant le code compilé pour que vous puissiez hériter une classe à partir d'un fichier PE écrit dans un autre langage. Vous pouvez créer une instance de toute classe écrite dans un langage managé (tout langage ciblant le Common Language Runtime) sans vous préoccuper de marshaling explicite ou d'utiliser un code d'interopérabilité personnalisé.

  • Attributs.

    Le .NET Framework permet de déclarer des types particuliers de métadonnées, appelés attributs, dans votre fichier compilé. Les attributs peuvent être recherchés via le .NET Framework et sont utilisés pour contrôler de façon plus détaillée comment votre programme se comporte au moment de l'exécution. En outre, vous pouvez émettre vos propres métadonnées personnalisées dans les fichiers .NET Framework via les attributs personnalisés définis par l'utilisateur. Pour plus d'informations, consultez Extension des métadonnées à l'aide des attributs.

Voir aussi

Autres ressources

Métadonnées et composants autodescriptifs

Extension des métadonnées à l'aide des attributs