C # Uso de la palabra clave dinámica para acceder a las propiedades a través de cadenas sin reflexión
Me gustaría escribir algo similar a lo siguiente:
// I will pass in a number of "properties" specified as strings that I want modified
string[] properties = new [] { "AllowEdit", "AllowDelete" };
// Casting the component I'm using to a dynamic object of some sort ?
dynamic d = myGridComponent;
// Iterate over the strings and set the properties
foreach(var s in properties)
{
//d.s = true; //
//d[s] = true; // this format would be ideal
}
Me preguntaba si había una manera fácil de hacer esto sin usar Reflection [.GetProperty(...).GetValue(...,...)
] utilizando la nueva palabra clave C # 4.0:dynamic
.
Parece que puede haber alguna forma, ... Simplemente no estoy seguro del mecanismo exacto, y no he podido encontrar el recurso adecuado para juntar todas las piezas.
Pensamientos?
[EDITAR] Parece que hay un paquete llamado "Clay" que implementa este tipo de funcionalidad de alguna manera.Clay en CodePlex
Scott Hanselman sobre el tema