Ho due funzioni:Type.GetMethod con un sovraccarico del generico - Get MethodInfo Generico scorrendo tutti i metodi
public void DeleteRecord(int id);
public T DeleteRecord<T>(int id);
Ecco come provo a richiamare in modo dinamico il generico metodo:
MethodInfo method = typeof(DAL).GetMethod("DeleteRecord", new[] { typeof(int) });
MethodInfo generic = method.MakeGenericMethod(returnType);
object o = generic.Invoke(null, new object[] { dbname, spname, expandoAsDictionary });
La prima riga t genera un'eccezione perché trova una definizione ambigua. C'è un modo per ottenere il MethodInfo
del metodo generico senza utilizzare GetMethods
e il looping dei risultati che richiedono IsGenericMethod
?
Modifica: Rimuovere il "Duplicato" perché entrambe le risposte suggerite risolvono questo problema con un ciclo interno (GetMethods(). Seleziona ...) o non affrontano nemmeno i sovraccarichi.
Questo non è un duplicato. so già come chiamare un metodo generico con reflection ma ho un'eccezione di definizione ambigua. Si prega di leggere la mia domanda attraverso. –
è un duplicato, ma ho collegato la domanda sbagliata, scusate ... ecco quello corretto: http://stackoverflow.com/q/5218395/201088. –
ancora no dup! ho chiesto esplicitamente come farlo senza usare la funzione GetMethods(). la risposta indicata nel tuo link lo sta usando ... –