Sto cercando di trovare tutti i metodi che un'interfaccia mi garantisce attraverso la riflessione. Ho un array di tipo che verifica abbia solo interfacce, da lì ho bisogno di estrarre tutti i metodi. Sfortunatamente, se faccio qualcosa come typeof (IList) .GetMethods() restituisce solo i metodi su IList non quelli su ICollection, o IEnumerable Ho provato la seguente query linq ma non restituisce i metodi trovati sulle interfacce esterne. Come posso risolvere la mia domanda?Ottieni tutti i metodi su un Tipo [] di interfacce usando LINQ?
from outerInterfaces in interfaces
from i in outerInterfaces.GetInterfaces()
from m in i.GetMethods()
select m
Se questo è stato SQL avrei potuto fare qualcosa di simile a una CTE ricorsiva con tutto un sindacato, ma non credo che una tale sintassi esiste in C#. Qualcuno può aiutarti qui?
@LukeH: Vedere la mia modifica. GetInterfaces() ottiene tutte le interfacce e cammina per l'albero della gerarchia. – BFree
@LukeH: Wow, non l'ho mai saputo. Mi piacerebbe vedere qualche documentazione in merito. Mi chiedo anche se altre lingue (in particolare VB.Net) lo facciano anche ... – BFree
@BFree: Ho appena cancellato il mio commento mentre faccio qualche altra ricerca. Ne sono meno sicuro, anche se sono sicuro di averlo letto da qualche parte autorevole. Detto questo, penso che "GetInterfaces" sia ricorsivo in ogni caso, il che renderebbe il comportamento reale irrilevante alla tua risposta. – LukeH