在Delphi 2007中是否存在可复制TRemotable对象(或后代)的强大机制?在Delphi 2007中制作TRemotable对象副本的强大方法
我创建了一个Delphi Web服务客户端,它从Web服务接收各种对象;当然,都是TRemotable的后代。在客户端中,我创建了一个匹配对象,然后将提供的TRemotable的Web服务中的所有属性复制到我自己的对象中。这是通过TypInfo.GetPropList()完成的,然后是一个围绕TypInfo的循环。 GetPropValue()和TypInfo.SetPropValue()方法调用。虽然这对于简单类型(字符串,ints,bool等)非常适用,但它不适用于复杂类型,如日期,时间或子对象类型。我假设,如果Web服务使用新的复杂类型,我的复制代码也会中断。
看起来像一种可能性是将对象序列化为XML文档,然后将其读入新对象。但是,这似乎是一个很大的开销,只是复制一系列的属性。
TDateTime类型是原生Delphi代码的两倍。但不是当它是TREMotable属性时;在这种情况下,这是一个TXSDateTime。它看起来像我的复制代码打破了任何TXS ...类型。 – 2009-07-22 20:48:02