Ultime notizie Aggiorna

loading
Ultimi commenti Aggiorna

loading
Segui Xabaras.it su Twitter
.Net: invocare metodi generici tramite reflection
Scritto da Paolo Montalto
giovedì 11 febbraio 2010

Supponiamo di avere una classe che implementa un metodo "generico" , ad esempio:

public class MyTestClass{
    public void MetodoGenerico()
    {
          ...
    }
}

Per invocarlo ci basta creare un'istanza della classe ed invocare il metodo specificando il tipo parametrico sul quale intediamo eseguire il metodo stesso, in questo modo:

MyTestClass myObject;

...

myObject.MetodoGenerico();

E se avessimo bisogno di invocare questo metodo tramite Reflection?

Basta utilizzare la "MakeGenericMethod" della classe System.Reflection.MethodInfo come segue:

MethodInfo methodInfo = typeof(MyTestClass).GetMethod("MetodoGenerico");
methodInfo = methodInfo.MakeGenericMethod(MyTypeClass);
methodInfo.Invoke(this, null);

o in Visual Basic:

Dim invokeArgs(0) as System.Type = MyTypeClass
Dim methodInfo As MethodInfo = MyTestClass.GetMethod("MetodoGenerico")
methodInfo = methodInfo.MakeGenericMethod(invokeArgs)
methodInfo.Invoke(MyTestClass, Nothing)

e il gioco è fatto!


Lascia un commento
captcha


Aggiorna