delphi - 如何检查接口(interface)属性的可见性?

标签 delphi rtti

我已开始在 Delphi 2010 中编写 Web 服务并进行单元测试以确保它们按计划运行。我的代码单元测试通过了,但是一个 Web 服务方法在作为服务调用时(即通过 SoapUI)没有返回值。经过数小时的代码搜索后,我发现这是因为我的返回对象的属性不在接口(interface)的已发布部分中;他们在公共(public)部分。

我的单元测试是否有一种方法可以检查对象的变量可见性,以便我可以在将来避免这个问题?我试图找到一种使用 RTTI 的方法,但一直找不到任何东西。

最佳答案

您可以通过尝试访问该属性的 RTTI 来确定该属性是否已声明已发布。公共(public)属性没有 RTTI,发布的属性有。

是这样的:

if (GetPropInfo(myobject, "PropertyName") != null) then 
    // it's published...

有关 RTTI 的更多信息,请参阅 Brian Long 的文章:http://www.blong.com/Conferences/BorConUK98/DelphiRTTI/CB140.htm

关于delphi - 如何检查接口(interface)属性的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4026235/

相关文章:

delphi - 开发者该如何应对如此多的GUI配置组合呢?

delphi - 有什么方法可以限制CodeCentral Web服务返回多少项目

database - Delphi:如何获取存储过程的输出参数的值?

delphi - delphi创建组件模板

c++ - 相同的 type_info 地址意味着相同的类型吗?

c++ - dynamic_cast的实际使用?

delphi - Delphi Web脚本:如何调试特定的脚本功能

performance - AQTime 性能分析器可以分析 vcl 源吗?

delphi - 如何使用 RTTI 检查或更改存在哪些集合元素?

德尔福2010 : whatever happened to TRTTIConstructor?