Из-за природы экземпляра CFC (скрытие данных) процесс wddx не может выглядеть «внутри» его, чтобы сериализовать его.
Однако у вас есть два варианта сериализации экземпляров CFC, в зависимости от того, что вы хотите выполнить.
Если вы хотите сериализовать внутреннее состояние экземпляра CFC, вы должны просто добавить метод в вашей CFC, который возвращает переменные рамки экземпляра CFC. Затем вы можете просто сериализовать ответ от вызова этого метода. getMemento()
или getInstanceData()
должен работать. - Спасибо, Скотт Строз!
Если вы хотите сериализовать метаданные (свойства и методы) экземпляра CFC, вы можете использовать функцию ColdFusion в функции getComponentMetadata()
и сериализовать результат этого вызова. - Спасибо Дэн Бракук!
Или, hm. Возможно, это не разумно, поскольку данные внутри компонента скрыты. –
Вероятно, лучшим способом справиться с этим было бы добавить метод, который дает вам память данных для текущего экземпляра CFC. Я часто использую этот метод, когда мне нужно передавать данные взад и вперед как JSON. –
Право на. Я тоже об этом думал. У меня на самом деле есть такой метод getInstanceData() .... так что я просто использую это и сериализую результат, я думаю. Спасибо, Скотт! –