C# Parameter-count mismatch-Fehler beim übergeben von Objekt-array in der invoke-Methode( Reflexion)
Ich versuche zu rufen-Funktion dynamisch, hier und passing argument, weiß nicht, warum es Fehler gibt.
Assembly objAssembly;
objAssembly = Assembly.GetExecutingAssembly();
//get the class type information in which late bindig applied
Type classType = objAssembly.GetType("Project." +strClassname);
//create the instance of class using System.Activator class
object obj = Activator.CreateInstance(classType);
//fixed object objValue[5];/* = new object[5];
object[] _objval = new object[3];
MethodInfo mi = classType.GetMethod("perFormAction");
mi.Invoke(obj, **_objval**); //Error here ..
Ich weiß nicht, warum es wirft parameter count mismatch hier.
- Was bedeutet die Signatur für perFormAction-Methode aussieht? Und was genau die Fehlermeldung besagt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok - so beachten Sie, dass der parameter der Methode ist ein einzelner parameter, dessen Typ object array. Daher müssen Sie passieren in der gleichen Weise. Zum Beispiel,
In Ihrem realen code, tun Sie füllen Sie das _objVal array oder nicht ? Wenn nicht, gibt es möglicherweise das Problem, dass MethodInfo.Aufrufen muss, um zu wissen, die Art der Parameter, um zu finden, die potentiell überladene Methode.
Und was ist die Unterschrift des perFormAction-Methode ?