gpt4 book ai didi

delphi - Delphi 中对象的 RTTI

转载 作者:行者123 更新时间:2023-12-03 18:04:07 24 4
gpt4 key购买 nike

我试图在 Delphi 中将对象解析为 XML,因此我阅读了有关调用对象的 ClassInfo 方法以获取其 RTTI 信息的内容。

事实是,这显然只适用于 TPersistent 对象。否则,我必须专门在源代码中添加一个编译器指令 {$M+},以便编译器生成 RTTI 信息。

所以我很高兴地添加了指令,却发现,即使它确实从 ClassInfo 调用中返回了一些东西(它曾经返回 nil),现在我无法从中检索类的属性、字段或方法。就像它创建了一个空对象。

知道我在这里错过了什么吗?谢谢!

最佳答案

您是否将这些属性和方法放入了published 部分?

除此之外,“经典”RTTI($TYPEINFO ON)只会为您提供有关属性的信息,而不是有关方法的信息。对于这些,您需要“扩展的”RTTI($METHODINFO ON)。

扩展 RTTI 的良好起点:David Glassborow on extended RTTI

(谁会相信就在这一刻我写完了一些使用扩展 RTTI 的代码并决定稍微浏览一下 Stack Overflow:))

关于delphi - Delphi 中对象的 RTTI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/168438/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com