Casten und die Methode "direkt" aufrufen ist natürlich immernoch das Beste, am Einfachsten über einen gemeinsamen Vorfahren.
Delphi-Quellcode:
type
TMyForm = class(TForm)
private
procedure Test;
procedure DoLog(S, S2: string);
end;
procedure TMyForm.Test;
begin
for var M in TRttiContext.Create.GetType({TMyForm}Self.ClassType).GetMethods do // ja, es fehlt ein .FindMethod('DoLog') ... k.A. warum die immer wieder so dämlich sind
if M.Name = 'DoLog' then
M.Invoke(Self, ['abc', 'def']);
end;