2015-11-16 26 views
1

<cfwddx>標記可以很容易地用於序列化和反序列化複雜的數據類型,如數組,結構和查詢,但不包括cfc實例。如何序列化cfc實例

序列化和後來反序列化cfc的最佳方式是什麼?

+0

或者,hm。也許這是不合理的,因爲組件內的數據是隱藏的。 –

+0

處理這個問題的最好方法可能是添加一個方法,爲您提供當前CFC實例的數據備忘錄。當我需要像JSON一樣來回傳遞數據時,我經常使用這種方法。 –

+0

對。我也在想這個。我實際上有這樣一個方法,getInstanceData()....所以我會用它並序列化結果,我想。謝謝Scott! –

回答

3

由於CFC實例(數據隱藏)的性質,wddx進程無法查看它的「內部」以序列化它。

但是,對於CFC實例序列化,您確實有兩個選項,具體取決於您要完成的任務。

  1. 如果你想你的序列化實例的CFC的內部狀態,你應該只是你的CFC返回的CFC實例變量範圍內添加一個方法。然後您可以簡單地序列化調用該方法的響應。 getMemento()getInstanceData()應該可以工作。 - 感謝Scott Stroz!

  2. 如果要序列化CFC實例的元數據(屬性和方法),可以使用ColdFusion的函數getComponentMetadata()構建並序列化該調用的結果。 - 謝謝Dan Bracuk!

1

退房ObjectSave()ObjectLoad(),但如果IMO序列化的數據是在不同版本的CF的道路要加載它們是有風險的。

相關問題