C # Verwenden des Schlüsselworts Dynamic, um über Zeichenfolgen ohne Reflektion auf Eigenschaften zuzugreifen

Ich möchte etwas Ähnliches wie das Folgende schreiben:

//  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
}

Ich habe mich gefragt, ob es einen einfachen Weg gibt, dies ohne Reflection zu tun .GetProperty(...).GetValue(...,...)] mit dem neuen C # 4.0-Schlüsselwort:dynamic.

Es scheint, dass es einen Weg geben könnte, ... Ich bin mir nur nicht sicher über den genauen Mechanismus und konnte nicht die richtige Ressource finden, um alle Teile zusammenzusetzen.

Gedanken

[EDIT] Es sieht so aus, als gäbe es ein Paket namens "Clay", das diese Art von Funktionalität auf irgendeine Weise implementiert.Clay on CodePlex
Scott Hanselman zum Thema

Antworten auf die Frage(6)

Ihre Antwort auf die Frage