flex+EF(Asp.Net Entity Framework)+FluorineFx 組合的自定義實體類型轉換(原創)
幾經周折搞定flex as自定義類到 .net c#的轉換。
以進銷存銷售開單爲例,這是一個典型的主明細表實體類,我是把主表類和明細表類做成一個類。然後在flex as3端傳送到.net端
我用的配置是flex as3 + EF(Asp.Net Entity Framework) c# + FluorineFx 組合
銷售開單我做了一個類,
FLEX端:
order_list.as
其中包括兩個成員
public var AccoutListVO:ArrayCollection; //銷售明細單用一數組
public var ordersVO:TgetXskdOrder;//銷售主表
傳給amf用的是object
//傳遞Order主明細表
public function addorder(ro:order_list):void{
_service.addOrder.send(ro);
}
以下是order_list.as源碼
package vo
{
import mx.collections.ArrayCollection;
import mx.collections.IList;
//這行沒有用因爲到c#的格式[RemoteClass(alias="posService.vo.order_list")] //試了幾種方式,發現都無法映射到cs類。最後決定自己綁定。
[Bindable]
public class order_list
{
public var AccoutListVO:ArrayCollection;//明細表
public var ordersVO:TgetXskdOrder;//主表
public function order_list():void{
}
}
}
//傳送方法
protected function addOrder_clickHandler(event:MouseEvent):void
{
var ro:order_list=new order_list();
ro.ordersVO.S_E_NAME="tt";
ro.ordersVO.S_O_DATE="2010-1-1";
var ro1:TgetXskdOrder=new TgetXskdOrder();
ro1=ro.ordersVO;
var myArray:ArrayCollection=new ArrayCollection();
myArray.addItem(new AccoutListVO());
myArray.addItem(new AccoutListVO());
myArray.addItem(new AccoutListVO());
myArray.addItem(new AccoutListVO());
ro.AccoutListVO=myArray ;
dbControl.addorder(ro);
}
C#端
//建一銷售單類 orderlist.cs
Orderlist.cs
public class orderlist
{
public Orders orders;//銷售單主表
public IList<AccoutList> accoutList;//銷售單明細表
public orderlist(ASObject obj)
{
// untypedList.OfType<T>().ToList();
//轉換flex傳過來的Order主表。
this.orders = obj["ordersVO"] as Orders;
//轉換FluorineFx.AMF3.ArrayCollection 到Ilist<T>很麻煩,查了很多資料才找到,最後在msdn上才找到答案IList to IList<T> http://social.msdn.microsoft.com/Forums/zh-CN/netfxbcl/thread/8c22d5db-8bf3-4dda-9db1-dc0ca3bb9cb4
this.accoutList = (obj["AccoutListVO"] as IList).OfType<AccoutList>().ToList();
}
}
服務調用的方法
public bool addOrder(ASObject obj)
{
orderlist obj1 = new orderlist(obj);
return true;
}
至此.net端成功轉換flex端傳過來的複雜自定義類。
下次更新.net到flex as3端的自定義實體類型轉換
網絡推廣 網站運營 網站開發 DDV的茶餐廳 http://www.dplayer.net/ , http://www.dplayer.net/post/94.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.