"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo establecer los valores de las propiedades dinámicamente en C# usando la reflexión?

¿Cómo puedo establecer los valores de las propiedades dinámicamente en C# usando la reflexión?

Publicado el 2025-04-08
Navegar:261

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

configurando los valores de las propiedades usando la reflexión

Es posible establecer dinámicamente el valor de una propiedad usando la reflexión en C#. Esto le permite modificar la propiedad de un objeto en el tiempo de ejecución, independientemente de su accesibilidad o visibilidad.

para establecer un valor de propiedad usando reflexión, siga estos pasos:

  1. el objeto PropertyInfo: use type.getPerty para recuperar el objeto PropertyInfo asociado con la propiedad que desea modificar. Si la propiedad no es pública, es posible que deba especificar banderas vinculantes adicionales, como BindingFlags.nonPublic o BindingFlags.instance.
  2. Invoca el método setValue: una vez que tiene el objeto PropertyInfo, invoca su método SetValue para establecer el valor de la propiedad. Este método toma dos parámetros: la instancia de objeto que desea modificar y el nuevo valor para establecer.

aquí hay un ejemplo que demuestra cómo usar la reflexión para establecer la propiedad del primer nombre de una clase de persona:

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
    }
}

En este ejemplo, la variable de propiedad contiene una referencia a la propiedad de primer nombre de la clase de persona. El método SetValue se invoca con la instancia P y el valor de la cadena "John" para establecer el valor de la propiedad dinámicamente.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3