Je voudrais accéder à la valeur d'un fichier dynamic
propriété c# avec une chaîne de caractères :
dynamic d = new { value1 = "some", value2 = "random", value3 = "value" };
Comment puis-je obtenir la valeur de d.value2 ("random") si je n'ai que "value2" comme chaîne de caractères ? En javascript, je pourrais faire d["value2"] pour accéder à la valeur ("random"), mais je ne suis pas sûr de savoir comment le faire en c# et avec la réflexion. Voici ce que j'ai trouvé de plus proche :
d.GetType().GetProperty("value2")
... mais je ne sais pas comment en tirer la valeur réelle.
Comme toujours, merci pour votre aide !
30 votes
Notez que ce n'est pas le but recherché de "dynamic" et que ce scénario ne fonctionne pas mieux avec "dynamic" qu'avec "object". dynamic" permet d'accéder à des propriétés lorsque l'objet "objet" n'est pas disponible. nom de la propriété est connue au moment de la compilation mais le type ne l'est pas. Comme vous ne connaissez ni le nom ni le type au moment de la compilation, la dynamique ne vous sera d'aucune utilité.
0 votes
Possiblement lié : stackoverflow.com/questions/5877251/ .
3 votes
@EricLippert Je sais que cette question est ancienne mais juste pour faire un commentaire au cas où quelqu'un la verrait dans le futur. Dans certains cas, vous ne pouvez pas choisir d'utiliser la dynamique ou l'objet (par exemple, lorsque vous utilisez l'analyseur syntaxique JSON) et vous pouvez toujours vouloir obtenir les propriétés d'une chaîne (d'un fichier de configuration, par exemple), donc cette utilisation n'est pas aussi inhabituelle qu'on pourrait le penser.