Ja, der Titel klingt etwas verwirrend, also erkläre ich, was ich meine: Angenommen, Sie haben ein dynamisches C # 4.0-Objekt und den Namen einer Eigenschaft. Wie würden Sie diese Eigenschaft vom dynamischen Objekt abrufen?
Mit anderen Worten, wie würden Sie Folgendes umsetzen:
%Vor%Eine andere Möglichkeit ist, ein dynamisches Objekt als IDictionary zu behandeln.
Beachten Sie, dass Reflektion hier wahrscheinlich keine Option ist, da das dynamische Objekt eine benutzerdefinierte Implementierung sein kann, die nicht reflektionsbasiert ist (z. B. durch Erweitern von DynamicObject und Ausführen einer eigenen Sache).
Sie müssten eine Aufruf-Site erstellen, einen Ordner erstellen usw.
Der einfachste Weg, um zu sehen, was passiert, ist dies zu kompilieren:
%Vor%Dekompiliere es dann mit Reflector und ermittle, was es macht. Es wird ziemlich kompliziert sein, wohlgemerkt - und Sie müssen es von einer einzelnen, statischen, zwischengespeicherten Aufrufseite zu einer neuen bei jedem Aufruf ändern.
Hier ist ein Beispiel, das funktioniert ... aber ob es vollständig korrekt ist oder nicht, ist eine andere Sache :) (Ich habe genau das gemacht, was ich oben vorgeschlagen habe.)
%Vor%