2015-11-16 21 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的道路要加载它们是有风险的。

相关问题