existe-t-il un moyen d'obtenir la valeur d'une propriété d'un objet en fonction de son nom?
Par exemple si j'ai:
public class Car : Vehicle
{
public string Make { get; set; }
}
et
var car = new Car { Make="Ford" };
Je veux écrire une méthode dans laquelle je peux passer le nom de la propriété et renvoyer la valeur de la propriété. c'est à dire:
public string GetPropertyValue(string propertyName)
{
return the value of the property;
}
c#
asp.net
reflection
Codeur 2
la source
la source
Tu devrais utiliser la réflexion
Si vous voulez être vraiment sophistiqué, vous pouvez en faire une méthode d'extension:
Puis:
la source
car
Vous voulez de la réflexion
la source
Exemple simple (sans code dur de réflexion d'écriture dans le client)
la source
En outre, d'autres types répondent, il est facile d'obtenir la valeur de propriété de n'importe quel objet en utilisant une méthode d'extension comme:
L'utilisation est:
la source
En développant la réponse d'Adam Rackis - nous pouvons rendre la méthode d'extension générique simplement comme ceci:
Vous pouvez également lancer une gestion des erreurs si vous le souhaitez.
la source
Pour éviter toute réflexion, vous pouvez configurer un dictionnaire avec vos noms de propriétés sous forme de clés et de fonctions dans la partie valeur du dictionnaire qui renvoient les valeurs correspondantes à partir des propriétés que vous demandez.
la source