Delphi Prism - 如何确定TObjectExtender“扩展”的实际类

时间:2012-12-13 03:52:34

标签: delphi-prism oxygene delphi-prism-2010

我的Delphi代码中有大量的日志记录,它通常使用Self.ClassName来记录包含当前正在执行的代码的类的名称。

我现在正在将一些代码编译成Delphi Prism .NET程序集。

但是,在Delphi Prism下,Self.ClassName现在返回“TObjectExtender”而不是实际的类名。

e.g。

type
  TMyClass: TObject
  begin
    procedure MyProc();
  end;
...

procedure TMyClass.MyProc;
begin
  Log(Format('%s: A log message', [Self.ClassName]));
end;

输出

TMyClass: A log message

在Delphi XEII中编译时,但在Delphi Prism中编译VS 2010输出

TObjectExtender: A log message

无论实际的类包含正在运行的代码。

有人可以建议一种方法来获取Delphi Prism中的实际类名吗?

1 个答案:

答案 0 :(得分:2)

要获取当前课程的名称,请使用

Self.GetType().Name