Maison > développement back-end > C++ > Comment puis-je définir dynamiquement les valeurs des propriétés en C# à l'aide de Reflection ?

Comment puis-je définir dynamiquement les valeurs des propriétés en C# à l'aide de Reflection ?

DDD
Libérer: 2025-01-05 08:03:42
original
922 Les gens l'ont consulté

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

Définition des valeurs de propriété à l'aide de la réflexion

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

Pour définir une valeur de propriété à l'aide de la réflexion, suivez ces étapes :

  1. Obtenez le Objet PropertyInfo : Utilisez 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 PropertyInfo, invoquez sa méthode SetValue pour définir réellement la valeur de 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 montre comment utiliser la réflexion pour définir la propriété firstName d'une classe Person :

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
    }
}
Copier après la connexion

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

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