public virtual AndroidJavaObject Invoke(string methodName, object[] args)
{
Exception inner = null;
BindingFlags bindingAttr = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static | BindingFlags.Instance;
System.Type[] types = new System.Type[args.Length];
for (int i = 0; i < args.Length; i++)
{
types[i] = (args[i] != null) ? args[i].GetType() : typeof(AndroidJavaObject);
}
try
{
MethodInfo info = base.GetType().GetMethod(methodName, bindingAttr, null, types, null);
if (info != null)
{
return _AndroidJNIHelper.Box(info.Invoke(this, args));
}
}
catch (TargetInvocationException exception2)
{
inner = exception2.InnerException;
}
catch (Exception exception3)
{
inner = exception3;
}
string[] strArray = new string[args.Length];
for (int j = 0; j < types.Length; j++)
{
strArray[j] = types[j].ToString();
}
if (inner != null)
{
object[] objArray1 = new object[] { base.GetType(), ".", methodName, "(", string.Join(",", strArray), ")" };
throw new TargetInvocationException(string.Concat(objArray1), inner);
}
object[] objArray2 = new object[] { "No such proxy method: ", base.GetType(), ".", methodName, "(", string.Join(",", strArray), ")" };
throw new Exception(string.Concat(objArray2));
}