hi. folgende frage:
ich baue ein framework für applikationen, bei denen sich der kunde aus verschiedenen user-interface-klassen (die alle von einer basis-klasse erben) den bildschirm selbst gestalten kann. eine user-interface-klasse ist in der regel immer ein formular mit der anzeige verschiedener daten und gekapselt dazu die möglichen funktionen (neu, ändern, ...).
ich hole dann zur laufzeit aus der datenbank die konfiguration für den user und möchte nun die einzelnen objekte aus den klassen lt. datenbank anlegen.
ich möchte jetzt aber nicht ein switch machen mit einem NEW statement für jede mögliche klasse, sondern eigentlich nur ein NEW bei dem ich die klasse dynamisch angebe. z.B.:
<<<alt>>>
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| switch (dataFormType) { case "Customer": { newUIC = new K3.Base.UserManagement.uicUser(); break; } case "Order": { newUIC = new K3.Base.UserManagement.uicCustomer(); break; } ... } |
<<<ziel>>>
C#-Quelltext
1: 2:
| String className = "uicUser"; newUIC = new value(className)(); |
der vorteil dieser lösung ist, dass ich, wenn ich neue klassen baue (bzw. z.b. externe firmen eigene klassen bauen, die ich gar nicht kenne), diese ohne änderung im source-code jederzeit starten kann. zwar wird dann erst zur laufzeit kontrolliert, ob das überhaupt funktioniert (wenn z.B. die klasse eigentlich gar nicht zu meiner architektur passt), aber dafür bin ich viel flexibler.
die frage ist jetzt, ob so was überhaupt möglich ist und falls ja, wo ich dazu hints finden kann...
Moderiert von
Christian S.: C#-Tags hinzugefügt