Public static anytype invokeobjectmethod (object _ object, identifiername _ methodname, Boolean _ trybaseclass = false)
{
Dictclass = new dictclass (classidget (_ OBJECT ));
Dictclass dictclassbase;
Dictmethod;
Int I;
;
For (I = 1; I <= dictclass. objectmethodcnt (); I ++)
{
If (dictclass. objectmethod (I) = _ methodname)
{
Dictmethod = dictclass. objectmethodobject (I );
If (dictmethod. parametercnt () = 0)
{
// Invokeobjectmethod is listed as a dangerous API. Just suppress BP error;
// CAS is implemented by dictclass: callobject.
// BP deviation incluented
Return dictclass. callobject (_ methodname, _ OBJECT );
}
Throw error (strfmt ("@ sys87800", _ methodname ));
}
}
If (_ trybaseclass & dictclass. Extend ())
{
Dictclassbase = new dictclass (dictclass. Extend ());
// BP deviation incluented
Return sysdictclass: invokeobjectmethod (dictclassbase. makeobject (), _ methodname, _ trybaseclass );
}
Throw error (strfmt ("@ sys60360", _ methodname ));
}