0

Hi,
When I call a method(present in external DLL) through reflection which having no parameters and void return ,it get called fine but in same DLL when I call a method which have no parameters but return type Datatable then I got the 'TargetInvocation' exception.
Can anybody help me ?

2
Contributors
5
Replies
6
Views
7 Years
Discussion Span
Last Post by nitin2010
0

The TargetInvocationException tells you that the method you are calling has thrown an exception. Check the InnerException property of the exception to find out what the underlying cause might have been.

0

InnerException property of the exception gives
"Input array is longer than the number of columns in this table."

/***********************My Code*****************/
Datatable Mymethod()    //Method to call 
{
    Datatable dt_Temp=new Datatable();
       dt_Temp.Rows.Add(23,45);
    dt_Temp.Rows.Add(567,566);
     return dt_Temp;
}

methodSelected="MyMethod";

object ibaseObject = Activator.CreateInstance(type);
                    object result=new object(){};
        object[] arguments = new object[0];
  MethodInfo methodInfo=  type.GetMethod(methodSelected);
   result= methodInfo.Invoke(ibaseObject,arguments);

/************************End of code******************/

Edited by mike_2000_17: Fixed formatting

0

its the line dt_Temp.Rows.Add(23,45); that is throwing the exception. You are adding 2 values to the datatable but the datatable doesnt have 2 columns.
Try this:

Datatable dt_Temp = new DataTable();
            dt_Temp.Columns.Add(); //optionally use Columns.Add("name here") to name your columns
            dt_Temp.Columns.Add();
            dt_Temp.Rows.Add(23, 45);
0

Ryshad ............................
I don't have words to thanks u.
You are just awesome.
Thanks again for your so quick reply.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.