Maison > développement back-end > C++ > La réflexion C# peut-elle modifier les valeurs de propriété privée à partir d'une chaîne ?

La réflexion C# peut-elle modifier les valeurs de propriété privée à partir d'une chaîne ?

Mary-Kate Olsen
Libérer: 2025-01-05 03:25:39
original
627 Les gens l'ont consulté

Can C# Reflection Change Private Property Values from a String?

La réflexion peut-elle modifier les valeurs de propriété à partir d'une entrée de chaîne ?

En utilisant la réflexion en C#, vous pouvez accéder aux membres privés d'une classe, y compris ses propriétés . Cela vous permet de manipuler les valeurs sous-jacentes de ces propriétés, malgré leurs restrictions d'accès.

Exemple : Définition des valeurs de propriété de manière réfléchie

Considérez le code suivant :

string propertyName = "first_name";
// Assume there's a property named first_name in the class
Copier après la connexion

Pour définir la valeur de cette propriété par réflexion, suivez ces étapes :

  1. Obtenez les informations sur la propriété à l'aide de Reflection :

    Type propertyType = typeof(TargetClass);
    PropertyInfo propertyInfo = propertyType.GetProperty(propertyName, BindingFlags.NonPublic | BindingFlags.Instance);
    Copier après la connexion
  2. Utilisez la méthode SetValue pour modifier la valeur de la propriété :

    object targetObject = new TargetClass();
    propertyInfo.SetValue(targetObject, "New Value", null);
    Copier après la connexion

Remarque : Dans l'exemple ci-dessus, TargetClass représente la classe contenant la propriété first_name. Pour accéder aux propriétés privées ou protégées, ajustez les BindingFlags dans GetProperty() en conséquence.

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