Flex“无法将'FluorineFx.ASObject'类型的对象强制转换为类型。”使用FluorineFx和.Net时

时间:2013-10-09 21:03:50

标签: flex fluorinefx

使用Flex调用.Net方法时,远程调用会出现转换错误。错误说:

  

无法将“FluorineFx.ASObject”类型的对象强制转换为类型   com.mynamespace.MyAccessControlType

调用者是flex,服务是在.net中提供的。它使用FlourineFx进行通信/桥接双方。

flex调用类似于:

public class SavePageDelegate
    {
        private var responder:IResponder;
        private var service:RemoteObject;

        public function SavePageDelegate(page:PageType, responder:IResponder):void
        {
            this.service = ServiceLocator.getInstance().SavePage(page);
            this.responder = responder;
        }
    }

远程方法如下。请注意,页面对象正在发送没有问题。页面对象具有权限的ArrayList(AccessControlList)(MyAccessControlType)。当我尝试使用foreach访问元素时,会抛出错误:

    /* this is called from Flex*/ 
    public string SavePage(PageType page){
        ...
        InsertAccessControl(page.AccessControlList);
    }

    /* This is called from SavePage */
    public void InsertAccesControl(System.Collections.ArrayList AccessControlList);
    {
        // This is the line where the error is triggered
        foreach (com.mynamespace.MyAccessControlType item in AccessControlList)
        {
            ...
        }
    }

我使用这些页面作为参考: http://www.fluorinefx.com/docs/fluorine/typeconversion.html - 显示对Fluorine / Flex对象有效的类型转换

http://www.fluorinefx.com/docs/fluorine/classmapping.html - 用于类映射。

1 个答案:

答案 0 :(得分:1)

您似乎在flex声明中缺少MyAccessControlType的映射,因为它被视为通用的AsObject。

映射将如下:

[RemoteClass(alias="com.mynamespace.MyAccessControlType")]

这应该允许您查看完整的远程类,从而消除了转换问题。 希望这会有所帮助:D