Delphi在类过程中使用反射来获取动态类类型

时间:2014-07-03 16:30:42

标签: delphi reflection rtti

我想在类过程/函数(静态方法)中使用当前类的反射。如果不使用“Self”关键字,该怎么办?并且没有对类名进行编码:这个过程应该在后代中重写。

class procedure AAA.SetTableAndSequence;
var
c : TRttiContext;
t : TRttiType;
begin
  c := TRttiContext.Create;
  try
    t := c.GetType(Self.ClassType);
    ...
  finally
   c.Free;
  end;
end;

1 个答案:

答案 0 :(得分:4)

您可以使用ClassInfoGetType

class procedure AAA.SetTableAndSequence;
var
  c: TRttiContext;
  t: TRttiType;
begin
  t := c.GetType(ClassInfo);
  ...
end;