me gustaría tener acceso al valor de un dynamic
C# propiedad con una cadena:Obtener valor de propiedad dinámica C# a través de la cadena
dynamic d = new { value1 = "some", value2 = "random", value3 = "value" };
¿Cómo puedo obtener el valor de d.value2 ("al azar ") si solo tengo" value2 "como una cadena? En javascript, podría hacer d ["value2"] para acceder al valor ("random"), pero no estoy seguro de cómo hacer esto con C# y reflection. Lo más cerca que he venido es esto:
d.GetType().GetProperty("value2")
... pero no sé cómo obtener el valor real de eso.
Como siempre, gracias por su ayuda!
Tenga en cuenta que este no es el propósito previsto de "dinámico" y que este escenario no funciona mejor con "dinámico" que con "objeto". "dinámico" hace que sea posible acceder a las propiedades cuando el * nombre * de la propiedad se conoce en tiempo de compilación, pero el * tipo * no lo es. Como no conoce ni el nombre ni el tipo en tiempo de compilación, la dinámica no lo ayudará. –
Posiblemente relacionado: http://stackoverflow.com/questions/5877251/lookup-property-in-object-graph-via-a-string. – DuckMaestro
@EricLippert Sé que esta pregunta es antigua, pero solo para hacer un comentario en caso de que alguien la vea en el futuro. En algunos casos, no puede elegir si usar dinámicos u objetos (por ejemplo, cuando usa el analizador JSON) y aún puede querer obtener las propiedades de una cadena (de un archivo de configuración, por ejemplo), por lo que este uso no es tan inusual como uno podría pensar inicialmente. – Pedrom