Maison > développement back-end > C++ > Comment puis-je extraire les noms d'attributs et les valeurs des propriétés de classe à l'aide de la réflexion?

Comment puis-je extraire les noms d'attributs et les valeurs des propriétés de classe à l'aide de la réflexion?

Barbara Streisand
Libérer: 2025-01-29 08:24:17
original
145 Les gens l'ont consulté

How Can I Extract Attribute Names and Values from Class Properties Using Reflection?

Le nom et la valeur de l'attribut et de la valeur de l'extraction de réflexion

Une tâche commune dans la réflexion consiste à récupérer les informations d'attribut associées aux attributs des attributs de la classe. Considérez l'exemple suivant:

Ici, les attributs sont appliqués aux attributs

. Notre objectif est d'utiliser des réflexes pour obtenir des noms et des valeurs d'attribut ("auteur", "authorname").
<code class="language-csharp">public class Book
{
    [Author("AuthorName")]
    public string Name
    {
        get; private set; 
    }
}</code>
Copier après la connexion

Pour cela, veuillez suivre les étapes ci-dessous: Author Name

Utilisez pour obtenir le tableau d'instance

de l'attribut de classe.

    Pour chaque , appelez
  1. pour déterminer si un attribut a le type typeof(Book).GetProperties(). PropertyInfo
  2. Si l'attribut existe, le nom d'attribut est récupéré à partir du
  3. et la valeur d'attribut est récupérée à partir de l'attribut. PropertyInfo GetCustomAttributes() Author L'exemple de ce type d'implémentation est fourni ci-dessous:
  4. Author En appelant cette fonction, vous pouvez obtenir un dictionnaire qui mappe le nom d'attribut au nom de l'auteur, fournissant ainsi une liste complète des informations d'attribut associées aux attributs. PropertyInfo

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal