【问题标题】:Invoke MethodInfo from dll file从 dll 文件调用 MethodInfo
【发布时间】:2013-01-04 09:50:42
【问题描述】:

我正在编写一个必须可附加到任何项目的 dll 库,但有一件事我无法解决。

我需要从 dll 文件调用/运行 MethodInfo。它看起来像这样。 SenderMethod,和args一样,计数是动态的。

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 什么都不返回。我知道那里缺少组件名称,但我未能找到适用于调用者类不是静态的情况的解决方案。

请帮忙! 谢谢!

【问题讨论】:

    标签: .net vb.net invoke gettype methodinfo


    【解决方案1】:

    您需要在调用GetType 时使用SenderMethod.ReflectedType.AssemblyQualifiedName

    【讨论】:

    • 感谢重播!现在我得到了Dim SenderType As Type = SenderMethod.ReflectedType.AssemblyQualifiedName.GetTypeSenderMethod.Invoke(SenderType, New Object() {ActLV, e}) 给出错误: TargetExpension 未处理 - 对象与目标类型不匹配。我相信这是因为 SenderType 是 System.String :/ 我错过了什么?
    • MethodInfo.Invoke 的第一个参数必须是 SenderType 类型的实例。如果您也将其传递给您的方法,那将是最好的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多