Entwickler-Ecke
Basistechnologien - Assembly Verweis und using namespace zur Laufzeit?
Xcalibur - Mi 26.01.11 15:33
Titel: Assembly Verweis und using namespace zur Laufzeit?
Hallo,
Um eine DLL zu nutzen habe ich sie einfach im VisualStudio unter Verweise hinzugefügt und dann mit
C#-Quelltext
1:
| using derbestimmteNamespace; |
konnte ich alle Methoden usw dieses Namespaces nutzen.
Nun habe ich verschiedene DLL's und würde gerne erst zur Laufzeit entscheiden welche ich nutzen möchte.
Kann ich den oben genannten Schritt einfach dynamisch machen, (also das ich DLL laden kann ist mir klar aber kann ich dann auch so einfach einen ganzen Namespace aus dieser DLL nutzen oder muss ich jede einzelne Methode extra definiern.
Ich hoffe der Text da oben macht halbwegs Sinn.
Gruß Gernot
Xcalibur - Mi 26.01.11 17:17
Danke für die schnelle Antwort.
Im Prinzip geht es darum dass ich nur eine Klasse entwickeln möchte, welche ich dann in anderen Projekte einbauen will.
In den Folgeprojekten nutze ich die Klasse dann für verschiedene Zugriffe auf DB-Systeme. Je nachdem welche DB ich verwende soll
die Klasse die entsprechende DLL laden und die Methoden verwenden.
Jedoch kann ich die DLL's nicht fix mitgeben also soll zur Laufzeit geprüft werden ob die entsprechende DLL auf dem PC drauf ist, und dann erst laden oder eben eine Fehler ausgeben.
Gruß Gernot
Ralf Jansen - Mi 26.01.11 18:15
| Zitat: |
Im Prinzip geht es darum dass ich nur eine Klasse entwickeln möchte, welche ich dann in anderen Projekte einbauen will.
In den Folgeprojekten nutze ich die Klasse dann für verschiedene Zugriffe auf DB-Systeme. Je nachdem welche DB ich verwende soll
die Klasse die entsprechende DLL laden und die Methoden verwenden. |
Programmiere einfach gegen ein Interface nicht gegen eine konkrete Klasse. Denk dir also ein gemeinsames Interface aus programmiere deinen allgemeinen Code dagegen und lasse deine dynamisch zu ladenden Klassen dieses Interface implementieren. Wenn du dann zur Laufzeit eine konkrete Klasse brauchst lade die entsprechende Assembly dynamisch(wie von
Th69 angesprochen), klaube dir die entsprechende Klasse die du brauchst aus der Assembly und caste diese Klasse auf das Interface gegen das du in deiner Anwendung programmiert hast und benutze diese dann typsicher.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!