Mit diesen einfachen Funktionen ist es möglich in einer unbekannten Klasse eine bekannte, öffentliche Variable zu ändern oder auszulesen.
Da ich momentan ein Projekt habe, in der ich von einer anderen Assembly des Projekts auf Member des Parentforms zugreifen muss, bin ich durch ein wenig suchen und probieren auf diese Lösung gestoßen.
//ParentForm ist in diesem Fall das besitzende Objekt der Member
//Wert auslesen
this.ParentForm.GetType().GetField("Name der Variable").GetValue(this.ParentForm);
//Wert setzen
this.ParentForm.GetType().GetField("Name der Variable").SetValue(this.ParentForm, "Neuer Wert");
//Funktion ausführen
//Beim Invoke müssen die Parameter der Funktion angegeben werden. In meinem Fall hat die Funktion keine.
this.ParentForm.GetType().GetMethod("Name der Funktion").Invoke(this.ParentForm, null);
//Über die Type-Klasse sind noch ein paar weitere lustige Funktion verfügbar. Viel Spaß damit!
Kommentare zum Snippet