2011-02-02 40 views
0

我正在多個類似的調用與一個遠程對象具有類似的結果。由於這些調用非常相似且非常易變,我一直將遠程方法的名稱保存在配置文件中,並且當我需要調用遠程對象的getOperation()時,調用send()操作對象。但是,這些要求已經發生變化,因此並不是所有的呼叫都具有相同數量的參數。我可以使用... rest *構造將數組傳遞給函數嗎?

由於發送使用...,我將能夠繼續使用相同的格式並傳遞一個數組,或將send()視爲傳遞一個數組類型的參數嗎?

+1

作爲一個側面說明,也許這將有助於澄清任何混亂:如果你抽象的方式你的RO的操作會導致問題,因爲你的operation.send()調用發送一個數組作爲唯一的參數,看看Function.apply()。因此,在你想要將你的參數數組分解爲send()調用的例子中,你可以執行如下操作: (operation.send as Function).apply(targetThis,arrayOfArgs)。 如果您發現要將一個數組對象發送到您的遠程方法簽名中,那麼這會破壞您的參數。 希望有所幫助。祝你好運。 – 2011-02-02 23:16:38

回答

1

Operation類還具有可用的「參數」屬性。這樣你可以在調用send()之前預先填充它。 send()方法不需要額外的參數。

var operation:Operation = Operation(remoteObject.getOperation(methodName)); 
operation.arguments = parameters; 

var token:AsyncToken = operation.send(); 
var responder:Responder = new Responder(resultHandler, faultHandler); 
token.addResponder(responder); 
0

你可以使用...休息

這將給你一堆對象的數組。我會建議你做第一個項目[0]總是ID。這個ID應該標識發送者或者傳遞的對象的類型。您可以輕鬆爲每種類型的項目開關/外殼。你也可以採取更復雜的方式處理這個問題,但這應該起作用。

相關問題