Hi,
mit
myExpandoObject.GetType().GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)
kommst du an die Eigenschaften des ExpandoObjects.
Innerhalb der Eigenschaften "Keys" und "Values" befinden sich Informationen zu deinen hinzugefügten Eigenschaften.
In "Keys" demnach der Membername und in "Values" deren Werte.
Auf die Schnelle konnte ich aber nicht feststellen ob sich irgendwo noch Typinformationen zu den Eigenschaften befinden.
Mittels
MethodInfo tryAddMemberMethod = myExpandoObject.GetType().GetMethod("TryAddMember", BindingFlags.Instance | BindingFlags.Public |BindingFlags.NonPublic);
tryAddMemberMethod.Invoke(z, new object[]
{
"NeuerTest", 334
});
var neuerTest = z.NeuerTest;
Kannst du sogar dynamisch zur Laufzeit dynamische Member zu einem dynamischen Typen (ExpandoObject) hinzufügen.
Wie gesagt, das würde alles das Prinzip von Reflection untergraben
Wieso sollte das System von Reflektion untergraben werden Wenn man dynamisch erzeugte Typen mit dieser reflektieren kann? Das ergibt keinen Sinn, es würde eher Sinn ergeben zu sagen das das System von Reflektion untergraben wird wenn es Typen im Typsystem gibt die nicht mit Reflektion untersucht werden können!