是否可以通過AMF接收自定義泛型類型對象?我正嘗試將Flex應用程序與現有的C#服務集成,但flex會窒息自定義泛型類型的對象。據我所知,Flex甚至不支持泛型,但我希望能夠讀取對象並根據需要投射它的成員。我基本上只想flex以忽略<T>
。我希望有一種方法可以做到這一點,因爲flex不會抱怨類型化集合(一個服務器調用返回List工作正常,Flex會將它轉換爲ArrayCollection就像一個非類型化的List)。接收通用類型<T>通過Flex中的遠程對象定製對象
這裏是怎麼回事,我的下調例如:
定製的C#類型類
public class TypeTest<T>
{
public T value { get; set; }
public TypeTest()
{
}
}
服務器方法返回typeTest
public TypeTest<String> doTypeTest()
{
TypeTest<String> theTester = new TypeTest<String>("grrrr");
return theTester;
}
相應的彈性值對象:
[RemoteClass(alias="API.Model.TypeTest")]
public class TypeTest
{
private var _value:Object;
public function get value():Object
{
return _value;
}
public function set value(theValue:Object):void
{
_value = value;
}
public function TypeTest()
{
}
}
和結果處理代碼:
public function doTypeTest(result:TypeTest):void
{
var theString:String = result.value as String;
trace(theString);
}
當結果處理函數被調用我得到的運行時錯誤:
TypeError: Error #1034: Type Coercion failed: cannot convert mx.utils::[email protected] to com.model.vos.TypeTest.
不快如果我改變結果處理採取Object類型的參數它工作正常。
任何人都知道如何使這個值的對象工作?我覺得我失去了一些非常明顯的東西。
感謝您的提示,但是當我在調試器中檢查出它返回的ObjectProxy看起來像它是實際的TypeTest對象。它具有可作爲result.value訪問的值字段 – Aaron 2010-04-28 18:25:51