2013-01-21 84 views
0

我正在寫一個dll庫,必須可以連接到任何項目,並有一件事我無法解決。從DLL文件調用MethodInfo

我需要從DLL文件調用/運行MethodInfo。它看起來像這樣。 SenderMethod,與args相同,並且count是動態的。

Private Shared Sub BGthread(SenderMethod As MethodInfo, arg0 As Object, arg1 As Object, ...) 
    Dim SenderType As Type = GetType(SenderMethod.ReflectedType.Name) 
    SenderMethod.Invoke(SenderType, New Object() {ActLV, e, Arg0, Arg1, ...}) 
End Sub 

問題是GetType什麼也沒有返回。我知道assambly的名字在那裏丟失,但是我沒有找到適用於調用者類不是靜態的情況的解決方案。

請幫忙! 謝謝!

回答

0

您需要在撥打GetType時使用SenderMethod.ReflectedType.AssemblyQualifiedName

+0

謝謝您的重播!現在,我得到了'Dim SenderType As Type = SenderMethod.ReflectedType.AssemblyQualifiedName.GetType'和'SenderMethod.Invoke(SenderType,New Object(){ActLV,e})''給出了錯誤:TargetExpension是未處理的 - Object與目標類型不匹配。我相信這是因爲SenderType是System.String:/我錯過了什麼? – user1983608

+0

「MethodInfo.Invoke」的第一個參數必須是「SenderType」類型的實例。如果你只是想把它傳遞給你,那也是最好的方法。 –