Salve a tutti.
Sto provando a creare un gestore di stampe. Attualmente ho un controllo del seguente tipo:
switch (estensione)
{
case ".PDF":
stampo PDF
case ".BMP":
stampo BMP
}
Attualmente ho implementato la stampa in base all'estensione del file, però ovviamente implemento i metodi per "estensioni" che conosco.
(mi funziona tutto, voglio solo provare a fare qualcosa di più "implementabile").
Quello che volevo riuscire a fare è quello di caricare, partendo da una cartella, le varie classi che mi servono.
ESEMPIO:
Supponiamo che io abbia la cartella "C:\Libreria\Stampe" in cui devo mettere le DLL da usare come stampa.
Ovviamente, tutte le DLL devono implementare una specifica interfaccia (supponiamo IPrint).
Quindi, nel mio programma, inserire una logica del tipo:
-) Cerca nella directory il file "xxxPrintHelper.dll" dove xxx è l'estensione.
-) Se esiste, allora carica "a runtime" quella dll come IPrint e lancia il metodo per la stampa
-) Se non esiste (o non implementa IPrint), allora cerca DefaultPrintHelper.dll
-) Se nemmeno quello è valido, stampa mediante "PrintTo" (verb)
In questo modo, il mio servizio di stampa sarebbe "facilmente" implementabile...
Purtroppo ho visto molti esempi di Reflection in giro, però non ho ben capito come poter caricare una DLL senza averla fra i riferimenti del mio progetto...
Qualcuno mi può dire se è fattibile e magari farmi un piccolo esempio veloce?
Grazie mille
http://