Posts
83
Comments
165
Trackbacks
11
Reflection: estrarre l’unico tipo di un assembly che implementa un’interfaccia


Oggi mi si è presentata la necessità di dover estrarre da un assembly, di cui conoscevo solo il nome (AssemblyName.dll), l’unico tipo che implementasse una determinata interfaccia (IFoo).

Bene…non essendo un grande esperto di Reflection e di tutto quanto le gravita attorno, non ho avuto scelta: partire dai test!!!
NOTA: avrei fatto lo stesso anche se sapevo dove andare a parare ;-)

Step01

L’assembly “AssemblyWithOneContainer” è un assembly che, come dice il nome stesso, contiene un solo oggetto che implementa l’interfaccia richiesta.
Ok, ora che la strada è tracciata posso provare ad implementare la funzionalità…reflection & LINQ si sono rivelati un’ottima accoppiata per risolvere la situazione in modo “brillante”. Ecco la soluzione:

Step02

o in modo ancora più compatto:

Step03 

- melkio -

posted on martedì 25 novembre 2008 18:34 Print