Hallo!
Du musst zuerst einmal wissen, in welchem Assembly diese Klasse liegt. Der Einfachheit halber gehen wir davon aus, dass Deine Anwendung nur aus einer Assembly besteht.
C#-Quelltext
1:
| Assembly theAsm = Assembly.GetCallingAssembly(); |
Es gibt noch andere Methoden für andere Situationen, einfach mal in der Hilfe stöbern
Dann musst Du Dir den Typ der Klasse besorgen. Wenn Du den Namen der Klasse hast, geht das so:
C#-Quelltext
1:
| Type myClassType = theAsm.GetType(myClassName); |
Schau Dir aber mal die Überladungen von GetType() an, um ein paar andere Möglichkeiten zu sehen, wie man den Type bekommen kann.
Jetzt noch eine Instanz erzeugen:
C#-Quelltext
1:
| IMyInterface myInstance = (IMyInterface )Activator.CreateInstance(myClassType); |
Ich bin dabei davon ausgegangen, dass alle Klassen, die hierfür in Frage kommen, ein gemeinsames Interface implementieren und man das Object, welches der Activator zurückgibt, darein casten kann. Dann wird die Benutzung der erzeugten Instanz viel einfacher. Ansonsten musst Du über Reflection jeweils Methoden und Eigenschaften ermitteln.
Grüße
Christian
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".