2012-01-08 3 views
1

Delphi 코드의 RTTI 정보를 통해 반복을 시도하고 있습니다. 패키지를로드 할 때 패키지가로드되기 전에 RTTI를 통해 정보를 가져올 수없는 것 같습니다.Delphi RTTI 정보 및 패키지

article에서 RTTI를 사용하여 MEF를 모방 한 코드를보고 있지만 같은 문제가 있습니다. 어떤 아이디어?

나는 RttiContext을 얻고 그것을 통해 반복 업데이트는 패키지에있는 클래스는 표시되지 않습니다. 예를 들어 Embarcadero article on querying for type information의 코드를 사용하면 아래에 표시된 것처럼 패키지의 클래스가 표시되지 않습니다. 이는 패키지가로드되었지만 클래스가 아직 존재하지 않는다는 것을 의미합니까?

for LType in FContext.GetTypes do 
    begin 
     WriteLn(LType.Name); 
    end; 
+0

정확하게"동일한 문제 "는 무엇입니까? 있다? 그것은 오류 코드, 데이터가 반환되지 않았거나, 유효하지 않은 데이터가 반환되었거나, 무엇입니까? –

+0

업데이트보기 - 여전히 문제를 질문으로 요약하려고합니다! – Mmarquee

+0

'TRttiPackage'를 사용하여 패키지 유형을 얻고 있습니까? – RRUZ

답변

0

해결했습니다.

원래 코드로 되돌아 가서 프로젝트의 런타임 패키지를 사용하도록 설정했습니다. Embarcadero docwiki의 중요한 정보는 ""입니다.이 예제는 런타임 패키지를 사용하여 작성해야합니다. 그렇지 않으면 유형이 응용 프로그램에 직접 작성됩니다. "