Laden...

Objekte per String instantiieren

Erstellt von Mandy vor 13 Jahren Letzter Beitrag vor 13 Jahren 844 Views
M
Mandy Themenstarter:in
47 Beiträge seit 2008
vor 13 Jahren
Objekte per String instantiieren

Hallo,

ich arbeite gerade an einer export-Schnittstelle von Warenwirtschaft zu Webshop und retour.

Dazu habe ich einige Objekte (DatenErstellen, DatenExportieren, ExportFinalisieren,...) erstellt.
Wie das Leben so spielt, hat jeder Kunde seine Extrawürste, die ich gerne in Ableitungen der obigen Klassen einbauen möchte. Im config sollte dann stehen, welche Klasse für den Export verwendet werden soll.

Jetzt die große Frage:
Ist es möglich und sinnvoll, ein
DatenErstellen = new "Kunde1_DatenErstellen"
zu machen?

Oder wie würdet ihr sowas lösen?

Danke,
Mandy

458 Beiträge seit 2007
vor 13 Jahren

Schau dir mal das Decorator-Pattern an.

be the hammer, not the nail!

Gelöschter Account
vor 13 Jahren

Ja, es ist möglich aus einem string eine Klasse . Sinnvoll ist es in deinem Fall nicht. Ich würde alles Kundenspezifische in eine dll auslagern und je nach kunde die entsprechende dll ausliefern.

Wie man aus einem string eine Klasse erzeugt, wurde sehr häufig besprochen. Verwende hierzu die Forumsuche und poste die besten Treffer hier.

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo Mandy,

Wie man aus einem string eine Klasse erzeugt, wurde sehr häufig besprochen. Verwende hierzu die Forumsuche und poste die besten Treffer hier.

Stichwort: Activator.CreateInstance

herbivore

M
Mandy Themenstarter:in
47 Beiträge seit 2008
vor 13 Jahren

Hallo,

vielen Dank für die schnellen Antworten.

Eine Beschreibung zur Instanzierung per String findet sich auf der MSDN: Activator.CreateInstance

Aber das ist wahrscheinlich nicht die optimale Lösung

@aequitas
Danke für den Hinweis auf Patterns...
darüber bin ich dann auf Interfaces gekommen, so bekommt jedes Kundenobjekt die komplette Schnittstelle verpasst, und ich muß nicht ständig unterscheiden.

Das mit den .dll's habe ich mir bei den paar Kleinigkeiten noch gar nicht überlegt.
Da würde ich eher eine gemeinsame Code-Bibliothek für die einzelnen Programmversionen verwenden.

Danke,
Mandy

2.187 Beiträge seit 2005
vor 13 Jahren

Hallo Mandy,

Für solche sachen sollte man sich einen Microkernel oder DI-Container holen.
Dort ist schon alles was du für die Instanziierung brauchst fertig drin.

Aber die Kundenspezifischen Klassen sollten wirklich in einer neue DLL pro Kunde kommen. Das haben wir in meiner Firma häufig genug und ohne die Aufteilung wäre das absolut unmöglich zu warten.

Gruß
Juy Juka