vb.net - 试图将事件处理程序添加到 VB.NET 中的后期绑定对象时卡住了
问题描述
我被困在试图处理由后期绑定对象引发的事件。
我得到了加载程序集(sLibFile 包含库的位置):
moAssembly = Reflection.Assembly.LoadFile(sLibFile)
获取我正在创建的对象类型没问题
moType = moAssembly.GetType("Some.Object")
创建对象是轻而易举的事......
moObject = Activator.CreateInstance(moType)
但后来我被困住了。我实例化的对象公开了一个具有以下签名的事件“GetField”:
Event GetField(FieldName As String, nPageNumber As Integer, ByRef sValue As String)
我写了一个 sub 来处理这个问题,但是....如何添加这个 Sub 作为这个事件的处理程序?AddHandler 仅适用于早期绑定的对象。
我可以得到事件好......
oEvent = moType.GetEvent("GetField")
也许
oEvent = moObject.GetType().GetEvent("GetField")
但在那之后我被卡住了......然后我如何将它链接到我写的Sub(我命名为Sub moObject_GetField)?
oEvent.AddEventHandler(moObject, AddressOf moObject_GetField)
这会引发错误“'AddressOf' 表达式无法转换为 '[Delegate]',因为类型 '[Delegate]' 被声明为 'MustInherit' 并且无法创建。”
怎么办?
解决方案
推荐阅读
- r - 使用 dplyr 中的过滤条件更改每组的最小日期
- google-cloud-platform - Gsutil 复制到本地失败,因为复合对象需要使用 CRC32c 进行完整性检查,
- android - 如何在 2020 年正确安装 Cordova Cli?
- amazon-web-services - Lightsail 中没有 Amazon Linux 2?
- go - 如何在 Go 中为非空值上传 0 值?
- java - 有没有办法从传递给 FireBasUI RecyclerAdapter 的持有者类布局中删除视图?
- c# - Azure Webjob 错误:找不到应用程序依赖项清单 (appname.deps.json) 中指定的程序集
- python-3.x - (ab){2} 在 findall() 中不返回 abab
- css - 为什么弹性项目的溢出属性会影响它的弹性收缩行为?
- python - ChatterBot Python