在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