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

Respuestas a la pregunta(3)

Su respuesta a la pregunta