我的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中的实际类名吗?
答案 0 :(得分:2)
要获取当前课程的名称,请使用
Self.GetType().Name