Maison > développement back-end > C++ > Comment la réflexion peut-elle être utilisée pour définir dynamiquement les valeurs des propriétés en C# ?

Comment la réflexion peut-elle être utilisée pour définir dynamiquement les valeurs des propriétés en C# ?

DDD
Libérer: 2025-01-04 06:45:40
original
353 Les gens l'ont consulté

How Can Reflection Be Used to Dynamically Set Property Values in C#?

Utiliser Reflection pour modifier les valeurs des propriétés

Reflection, une puissante fonctionnalité du framework .NET, offre la possibilité d'inspecter et de modifier des objets et leurs membres. dynamiquement. Dans ce contexte, nous explorerons comment la réflexion peut être exploitée pour définir la valeur d'une propriété spécifique au sein d'une classe C#.

Envisagez un scénario dans lequel vous connaissez le nom d'une propriété, telle que "prénom", et souhaitez modifier sa valeur à l'aide de cette chaîne. La réflexion fournit une solution à ce problème.

Pour obtenir le résultat souhaité, les étapes suivantes peuvent être suivies :

  1. Récupérer la propriété à l'aide de Type.GetProperty : Utilisez Type.GetProperty pour obtenir les métadonnées de la propriété. Des indicateurs de liaison peuvent être requis si la propriété n'est pas publique.
  2. Définissez la valeur via SetValue : Appelez la méthode SetValue sur la propriété récupérée pour attribuer la valeur souhaitée. Une instance d'objet est requise pour appeler SetValue.

L'exemple de code fourni illustre cette approche :

class Person
{
    public string Name { get; set; }
}

class Test
{
    static void Main(string[] arg)
    {
        Person p = new Person();
        var property = typeof(Person).GetProperty("Name");
        property.SetValue(p, "Jon", null);
        Console.WriteLine(p.Name); // Jon
    }
}
Copier après la connexion

Si l'accessibilité de la propriété n'est pas publique, spécifiez BindingFlags comme indiqué :

var property = typeof(Person).GetProperty("Name", BindingFlags.NonPublic | BindingFlags.Instance);
Copier après la connexion

Avec l'aide de la réflexion, la définition dynamique des valeurs des propriétés devient une entreprise réalisable, offrant une flexibilité dans la manipulation du code et l'exécution. comportement.

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal