我已开始在 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/