2012-01-08 51 views
1

我想通过Delphi代码的RTTI信息迭代。当我加载一个软件包时,即使先前加载了软件包,我似乎也无法通过RTTI获取信息。德尔福RTTI信息和包

我正在查看这个article的代码,它使用RTTI来模仿MEF,但也有相同的问题。有任何想法吗 ?

更新

当我拿到RttiContext和遍历它,那是在包中的类不显示。例如,使用Embarcadero article on querying for type information中的代码,如下所示不显示包中的类 - 这是否意味着虽然包已加载,但类尚不存在?

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

什么是“相同问题”:您遇到什么问题有?它是一个错误代码,没有数据返回,无效的数据返回,或什么? – 2012-01-08 16:16:26

+0

查看更新 - 仍然试图将问题总结为一个问题! – Mmarquee 2012-01-08 16:33:40

+0

您是否在使用'TRttiPackage'获取软件包类型? – RRUZ 2012-01-08 16:41:05

回答

0

我已经解决了!

我回到我原来的代码,并打开项目的RunTime包。来自Embarcadero docwiki的重要信息是“请注意,该示例必须使用运行时软件包构建;否则,类型直接内置于应用程序中