2015-06-21 43 views
0

我有一個方法接收函數,通常是一個方法。從該函數中,我可以使用MethodInfo訪問方法的類和其他東西。 我希望能夠在傳遞函數/方法時訪問使用的實例(如果有的話)。我如何從MethodInfo訪問實例

實施例:

MyFunctionReceivingAMethod(new SomeClass().MethodA) 

我想在MyFunctionReceivingAMethodMethodA的反射數據來訪問SomeClass實例。那可能嗎?

更新:

我知道我可以通過參考方法,但我不知道是否可能使用funtion指針我已經得到它。

+4

不,您無法從MethodInfo獲取實例信息,因爲沒有附加這樣的數據。也許你應該問一個關於如何去做你想做的事情的問題。我認爲思考不是最好的方式。 – nvoigt

+1

*使用函數指針我已擁有*您沒有函數指針,而是一個代表。 –

回答

2

MethodInfo class中的反射數據與一般的方法相關聯,而不是與任何特定的實例相關聯。因此,您無法從該課程獲取您要查找的信息。

取而代之的是,Delegate.Target property將返回與接收委託相關聯的實例(我假設您正在尋找)。根據其對MSDN的描述,該物業將返回:

如果委託代表實例方法,當前委託調用實例方法的對象;如果委託代表靜態方法,則爲null。