0

在 ColdFusion 中是否也有可能?目前我正在使用 .Net/Fluorine 将对象返回给客户端。在测试中,我喜欢传递代表 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);
            }

非常感谢,

4

2 回答 2

4

是的,它可以工作并且是内置的,因此您不必使用外部服务器端部件。

ColdFusion 组件 (CFC) 是类的 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 数据类型转换表。

于 2010-05-26T11:43:34.483 回答
1

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

例如

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

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

于 2010-05-26T23:47:39.660 回答