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
Mary-Kate Olsenoriginal
2025-01-05 03:25:39629parcourir

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

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);
  2. Utilisez la méthode SetValue pour modifier la valeur de la propriété :

    object targetObject = new TargetClass();
    propertyInfo.SetValue(targetObject, "New Value", null);

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!

Déclaration:
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