Estrarre da un assembly I tipi derivati non astratti

Dall’assembly corrente possiamo estrarre, via reflection, diverse classi che rispondono alle nostre necessità, ad esempio, per avere l’elenco di tutte le classi che derivano da una classe base escludendo quelle astratte, possiamo scrivere qualcosa del genere:

Type[] types = Assembly.GetExecutingAssembly().GetTypes();
var myTypes = types.Where(type => type.IsSubclassOf(typeof(ClasseBase))
&& (!type.IsAbstract)).ToList();

Nel codice precedente diamo per scontato il fatto che i tipi da ricercare siano nell’assembly corrente, se non è così dobbiamo caricare l’assembly desiderato attraverso, ad esempio la chiamata al metodo starico Load della classe Assembly:

Assembly myAssembly = Assembly.Load(fullName);

Annunci

Informazioni su pythonyan

.Net Solution Developer at Be Smart
Questa voce è stata pubblicata in C# 4.0 e contrassegnata con . Contrassegna il permalink.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...