Si vous souhaitez récupérer la valeur d'une propriété ou d'une variable membre publique à partir de son nom, voici 2 méthodes utilitaires permettant de faire cela grâce à la réflexion :
class Objet
{
public string Nom { get; set; }
public string Variable;
}
public static class Util
{
public static T GetValeurProp<T>(this object pObjet, string pNom)
{
return (T)pObjet.GetType().GetProperty(pNom).GetValue(pObjet, null);
}
public static T GetValeurField<T>(this object pObjet, string pNom)
{
return (T)pObjet.GetType().GetField(pNom).GetValue(pObjet);
}
}
class Program
{
static void Main(string[] args)
{
var obj = new Objet() { Nom = "Propriété", Variable = "variable membre publique" };
Console.WriteLine(obj.GetValeurProp<string>("Nom"));
Console.WriteLine(obj.GetValeurField<string>("Variable"));
Console.ReadKey();
}
}
Aucun commentaire:
Enregistrer un commentaire