I want use reflection on the current class inside a class procedure/function (static method). How can I do without using the "Self" keyword? And without harcode the class name: this procedure should be override in the descendants.
class procedure AAA.SetTableAndSequence;
var
c : TRttiContext;
t : TRttiType;
begin
c := TRttiContext.Create;
try
t := c.GetType(Self.ClassType);
...
finally
c.Free;
end;
end;
You can use ClassInfo
and GetType
:
class procedure AAA.SetTableAndSequence;
var
c: TRttiContext;
t: TRttiType;
begin
t := c.GetType(ClassInfo);
...
end;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With