Laden...

Ist ein Dynamisches NEW Statement in c# möglich

Erstellt von stevonix vor 16 Jahren Letzter Beitrag vor 16 Jahren 971 Views
S
stevonix Themenstarter:in
28 Beiträge seit 2007
vor 16 Jahren
Ist ein Dynamisches NEW Statement in c# möglich

Hallo Zusammen,

ich habe eine Anfänger Frage.

Gibt es so etwas wie ein dynamisches NEW in c#. Ich würde es brauchen um dynmische Menü einträge aus der DB zu erstellen. d.h. in der DB werden die Classen als Strings hinterlegt die dann zur Laufzeit instanziert werden.

Mir ist bewußt das dies das Konzept von EARLY Binding untergräbt.

Ich würde es mir so vorstellen.

STRING myString;

myString = "class_1";

NEW myString();

Gruß
Stefan

S
8.746 Beiträge seit 2005
vor 16 Jahren

Activator.CreateInstance

O
778 Beiträge seit 2007
vor 16 Jahren

Mir ist bewußt das dies das Konzept von EARLY Binding untergräbt.

Naja, wenn du die Funktionalität der Menüeinträge über eine Schnittstelle definierst und dann auf die Schnittstelle castest, dann würde ich das nicht als Verstoß bezeichnen. Aber was anderes: Wenn du wie svenson das vorgeschlagen hast Activator.CreateInstance benutzt solltest du a einen parameterlosen Konstruktor anbieten und b in der Datenbank nicht nur class_1, sondern den vollqualifizierenden Namen (d.h., incl. Assembly) speichern.

4.506 Beiträge seit 2004
vor 16 Jahren

Hallo zusammen,

ich denke hier ist das richtige Stichwort Inversion of Control oder kurz auch IOC genannt. Solche Anforderungen würden sich in einem Microkernel Prinzip wiederfinden.

Eventuell könnte auch eine Factory-Pattern weiterhelfen, weil ich nicht sicher bin, ob der Typ wirklich so variabel gestaltet werden muss. Menüeinträge dynamisch lässt sich nämlich wunderbar auf "MenuItem" runterbrechen. Andere Typen würden doch so gar nicht in Frage kommen, oder liege ich da falsch?

Grüße
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”