Modelli di progettazione utilizzati dalle classi di reflection
I metodi utilizzati con maggiore frequenza nello spazio dei nomi System.Reflection utilizzano un modello coerente. I membri delle classi Module, Type e MemberInfo utilizzano i modelli di progettazione illustrati nella tabella che segue.
Firma del membro |
Descrizione |
---|---|
MyInstance[] FindXxx(filter, filterCriteria) |
Cerca e restituisce un elenco filtrato di tipi oppure una matrice vuota, se il tipo corrente non implementa alcun tipo che soddisfi il filtro. Esempio: Type.FindInterfaces |
MyInstance GetXxx(<parameters>) |
Restituisce il tipo specificato in modo univoco da <parameters>. Se tale tipo non è presente, il membro restituirà un riferimento null (Nothing in Visual Basic). <parameters> specifica un'istanza in modo univoco. Esempio: Type.GetInterface |
MiaIstanza[] GetXxxs() |
Restituisce tutti i tipi pubblici. Se non esiste alcun tipo pubblico, il membro restituisce una matrice vuota. Esempio: Type.GetFields |
MyInstance[] GetXxxs(<parameters>) |
Restituisce tutti i tipi specificati da <parameters>. Se nessun tipo soddisfa la ricerca, il membro restituisce una matrice vuota. <parameters> non specifica necessariamente un'istanza univoca. |
Un altro modello di progettazione comune è quello che prevede l'utilizzo dei delegati. In genere i delegati vengono utilizzati nella reflection per filtrare il set di risultati al fine di individuare i metodi che restituiscono matrici di oggetti.