Coldfusion返回打字的物体/ AMF遥控器

时间:2010-05-26 09:09:31

标签: flex flash coldfusion amf

ColdFusion中是否可以这样? 目前我正在使用.Net / Fluor将对象返回给客户端。 在测试中,我喜欢传递表示select语句的字符串以及我希望从我的服务返回的自定义对象。 Fluorine有一个ASObject类,你可以设置var'typeName';这很棒。 我希望在Coldfusion中这是可能的。有谁知道你是否可以用类似的方式设置返回对象的类型。 这对于大型集合尤其有用,因为flash播放器会将它们转换为同名的本地对象,从而节省了对集合的交互以将对象转换为特定的自定义对象。

 foreach (DataRow row in ds.Tables[0].Rows)
            {
                ASObject obj = new ASObject();

                foreach (DataColumn col in ds.Tables[0].Columns)
                {
                    obj.Add(col.ColumnName, row[col.ColumnName]);
                }
                obj.TypeName = pObjType;
                al.Add(obj);
            }

非常感谢,

2 个答案:

答案 0 :(得分:4)

是的,它工作正常,因此您不必使用外部服务器端部件。

ColdFusion组件(CFC)是Class的ColdFusion版本。

ColdFusion的Flash / Flex Remoting Gateway将自动将CFC转换为ActionScript对象。

请记住CF是基于Java的;所以路径和类名称区分大小写。我认为.NET不是那样的。

CFC和ActionScript对象应按相同顺序列出所有属性。在AS3中,您可以将它们定义为公共变量;在CFC中,您应该使用cfproperty标记定义它们。 ActionScript对象应使用RemoteClass元数据标记来指定CFC的绝对位置。 CFC的cfcomponent标记应指定别名属性,该属性是CFC对象的绝对路径位置。

如果服务中的CFC方法返回一个对象; cffunction标记上的返回类型应该是CFC对象的绝对路径。

我希望很多这与你在.NET上做的很相似;只是用不同的语法。我很确定你必须在CFADmin中启用Flex / Flash Remoting才能实现。

CF Docs中的某处应该有CF到Flex数据类型转换图表。

答案 1 :(得分:1)

您还可以使用名为“ type ”的特殊键返回一个结构,其中包含属性所代表的AS类的值,Flex将填充这些对象。

例如

{
  id=2,
  name=kevin,
  __type__=com.company.user
}

(注意'下划线下划线类型下划线下划线',格式化已被剥离)