"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je définir les valeurs de propriété dynamiquement en C # en utilisant la réflexion?

Comment puis-je définir les valeurs de propriété dynamiquement en C # en utilisant la réflexion?

Publié le 2025-04-08
Parcourir:880

How Can I Set Property Values Dynamically in C# Using Reflection?

Définition des valeurs de propriété en utilisant la réflexion

Il est possible de définir dynamiquement la valeur d'une propriété en utilisant la réflexion dans c #. Cela vous permet de modifier la propriété d'un objet lors de l'exécution, quelle que soit son accessibilité ou sa visibilité.

pour définir une valeur de propriété en utilisant la réflexion, suivez ces étapes:

  1. Objection de la propriété Associé: Utiliser Type.getProperty pour récupérer l'objet PropertyInfo associé à la propriété que vous souhaitez modifier. Si la propriété n'est pas publique, vous devrez peut-être spécifier des indicateurs de liaison supplémentaires, tels que BindingFlags.NonPublic ou BindingFlags.Instance.
  2. Invoquez la méthode SetValue: une fois que vous avez l'objet PropriétéInfo, invoquez sa méthode SetValue pour définir réellement la propriété. Cette méthode prend deux paramètres: l'instance d'objet que vous souhaitez modifier et la nouvelle valeur à définir.

Voici un exemple qui démontre comment utiliser la réflexion pour définir la propriété FirstName d'une classe de personne:

using System;
using System.Reflection;

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

class Test
{
    static void Main(string[] args)
    {
        // Create an instance of the Person class
        Person p = new Person();

        // Get the PropertyInfo object for the FirstName property
        var property = typeof(Person).GetProperty("FirstName");

        // Set the value of the FirstName property using reflection
        property.SetValue(p, "John", null);

        // Print the value of the FirstName property
        Console.WriteLine(p.FirstName); // John
    }
}

Dans cet exemple, la variable de propriété contient une référence à la propriété FirstName de la classe de personne. La méthode setValue est invoquée avec l'instance p et la valeur de chaîne "John" pour définir la valeur de la propriété dynamiquement.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3