2014-11-14 48 views
0

我有一個官能團與簽名像這樣通反射方法參數到另一個反射方法委託

private void FunkA(string eventName, Action action) {} 
private void FunkB() {} 

我獲得雖然反射。動作的值也是通過反射獲得的,所以在我的代碼中,我最終不得不尋找一種方法將'MethodInfo'作爲參數傳遞給調用。

MethodInfo miForFunkA; 
MethodInfo miForFunkB; 

miForFunkA.Invoke(sourceOfFunkA, new [] { 
    methodInfo.Name, 
    Delegate.CreateDelegate(typeof(Action), miForFunkB) 
}); 

問題是我不能創建一個具有字符串和委託類型的參數列表。 這應該如何通過?

回答

0

你應該到指定數組下明確鍵入:

miForFunkA.Invoke(sourceOfFunkA, new object[] { 
    methodInfo.Name, 
    Delegate.CreateDelegate(typeof(Action), miForFunkB) 
}); 

如果不解決您的問題,您應該編輯您的問題,以便它是關於你正在試圖做的更清晰的聲明涉及的所有變量,您現在擁有的代碼,它的功能,以及與您想要執行的操作有什麼不同。

+0

在之前的一個迭代中,我試圖傳遞一個基於另一個答案的lambda表達式對象給了我一個錯誤。然而,與委託它工作正常。 – QueueHammer 2014-11-17 14:37:36