AMF を介してカスタムの汎用型付きオブジェクトを受け取ることは可能ですか? フレックス アプリを既存の C# サービスと統合しようとしていますが、フレックスがカスタムのジェネリック型付きオブジェクトを詰まらせています。私が知る限り、Flex はジェネリックをサポートしていませんが、オブジェクトを読み込んで、必要に応じてそのメンバーをキャストできるようにしたいと考えています。私は基本的に、flex に を無視させたいだけです<T>
。flex は型付きコレクションについて文句を言わないので、これを行う方法があることを願っています (List を返すサーバー呼び出しは正常に機能し、型なし List と同様に、flex はそれを ArrayCollection に変換します)。
これは、私にとって何が起こっているかの縮小された例です。
カスタム 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: エラー #1034: 型強制に失敗しました: mx.utils::ObjectProxy@11a98041 を com.model.vos.TypeTest に変換できません。
イライラすることに、結果ハンドラーをオブジェクト型のパラメーターを取るように変更すると、正常に動作します。
値オブジェクトでこれを機能させる方法を知っている人はいますか? 本当に明白な何かが欠けているように感じます。