object ICustomInvoke.Invoke(object obj, object[] args, [email protected] callerID)
{
// a DynamicOnlyMethodWrapper is an interface method, but now that we've been called on an actual object instance,
// we can resolve to a real method and call that instead
TypeWrapper tw = TypeWrapper.FromClass(NativeCode.ikvm.runtime.Util.getClassFromObject(obj));
MethodWrapper mw = tw.GetMethodWrapper(this.Name, this.Signature, true);
if (mw == null)
{
throw new java.lang.AbstractMethodError(tw.Name + "." + this.Name + this.Signature);
}
java.lang.reflect.Method m = (java.lang.reflect.Method)mw.ToMethodOrConstructor(true);
m.@override = true;
return m.invoke(obj, args, callerID);
}