2012-12-13 6 views
1

Delphi 코드 전체에서 많은 양의 로깅을 가지고 있습니다. Delphi 코드에서 Self.ClassName을 사용하여 현재 실행중인 코드가 들어있는 클래스의 이름을 기록합니다.Delphi Prism - TObjectExtender가 "확장 중"인 실제 클래스를 어떻게 결정합니까?

이 코드 중 일부를 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; 

출력 델파이 XEII 컴파일

TMyClass: A log message 

하지만 실행 코드를 포함하는 실제 클래스없이 VS 델파이 프리즘 2010 출력

TObjectExtender: A log message 

를 컴파일 할 때.

누구든지 델파이 프리즘에서 실제 클래스 이름을 얻는 방법을 제안 할 수 있습니까?

답변

2

은 현재 클래스의 이름이 바로

Self.GetType().Name 
+0

최고, 감사를 사용 받으실 수 있습니다! 내 인터넷 검색은 거의 아무것도 나타나지 않았다. –