Delphi コード全体で大量のログを記録していますが、現在実行中のコードを含むクラスの名前を記録するために Self.ClassName を使用することがよくあります。
現在、このコードの一部を Delphi Prism .NET アセンブリにコンパイルしています。
ただし、Delphi Prism では、Self.ClassName は実際のクラス名ではなく「TObjectExtender」を返すようになりました。
例えば
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 でコンパイルした場合、VS 2010 の出力で Delphi Prism でコンパイルした場合
TObjectExtender: A log message
実行中のコードを含む実際のクラスに関係なく。
Delphi Prismで実際のクラス名を取得する方法を誰か提案できますか?