Hallo!
Die Instanz einer Klasse erstellen, wenn Du nur den Namen als String hast, kannst Du über Reflection:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| public class Test { }
public partial class Form1 : Form {
private void button1_Click(object sender, EventArgs e) { var t = Type.GetType("WindowsFormsApplication1.Test"); var test = Activator.CreateInstance(t);
MessageBox.Show(test.ToString()); } } |
Du wirst aber das Problem haben, dann auf die Methoden zuzugreifen, denn
test ist in obigem Beispiel vom Typ
object. Eine Lösung könnte hier sein, wenn alle in Frage kommenden Typen ein gemeinsames Interface implementieren, dann kann man dahin casten und dann mit dessen Methoden arbeiten.
Grüße
Christian
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".