È possibile utilizzare Type.InvokeMember
per richiamare un metodo tramite reflection e sembra piuttosto robusto, ad esempio per quanto riguarda i parametri dell'array param. Per qualche ragione, tuttavia, non tratta i parametri opzionali.Richiamare un metodo con parametri facoltativi tramite riflessione
Esiste un approccio integrato migliore per richiamare un metodo (magari utilizzando il DLR) che tiene conto dei parametri facoltativi?
È possibile chiamare type.GetMethod (...) per ottenere un'istanza MethodInfo. Quindi puoi chiamare methodInfo.Invoke(), per i parametri facoltativi, puoi passare Type.Missing –
Ma questo mi impone di andare allo sforzo di iterare su tutte le possibili istanze del metodo e di capire se i miei parametri sono appropriati dato l'opzionale parametri. Fondamentalmente facendo manualmente il binding che è quello che sto facendo al momento. Sembra che Type.InvokeMember vada al 90% del modo e poi fallisce. Guardando il duplicato sembra che sono bloccato a farlo manualmente per ora. –