请问如果获取动态加载DLL 类里面的事件?

苏格兰之风 2013-06-27 08:32:31
小弟现在已经能够动态的加载一个dll文件,并可执行他的一个函数,但是如果这个DLL类里面包含一个事件,当触发时,我该如何获取他反馈 的信息呢?谢谢,

Public Class ModbusRtu
'这个是生成的DLL文件类
Public Function StartWork(ByVal gt As String)
Dim i As Integer = 0
For i = 0 To 100
System.Threading.Thread.Sleep(1000)
Call StartEvent(Now())
Next

End Function

Public Event MyEvent(ByVal s As String) '自定义事件

Public Sub StartEvent(ByVal value As String) '触发事件函数
RaiseEvent MyEvent(value) '触发事件
End Sub

End Class

'==========================以下是加载ModBusRtu.dll这个文件
Dim asm As System.Reflection.Assembly
Dim classtemp As Type

asm = System.Reflection.Assembly.LoadFrom("ModBusRtu.dll")
classtemp = asm.GetType("ModBusRtu.ModbusRtu")
Dim obj As Object = asm.CreateInstance(classtemp.FullName)

就是加载这个dll之后,他每秒钟输出一个时间,我要能捕获,并显示他那输出的时间,VB.NET还处于刚入门,请高手赐教。。。
补充:我似乎找到了怎么用了,不过我是在vs2005 下编程,且用于WINCE6.0上。
classtemp.GetType().AddEventHandler(obj, AddressOf obj_Timer)

...

Sub obj_Timer()
' Here to deal with the timer event of your object's instance.
End Sub
不过为什么classtemp.GetType后没有“AddEventHandler”这个方法啊?是不是wince下的精简.net不支持?那我该怎么办?谢谢!!~~~
...全文
186 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
苏格兰之风 2013-06-28
  • 打赏
  • 举报
回复
引用 3 楼 irix2008 的回复:
classtemp.GetType.getEvent("事件名").addeventhandler 或 addhandler classtemp.MyEvent addressof ...
谢谢已经解决了!
苏格兰之风 2013-06-27
  • 打赏
  • 举报
回复
引用 1 楼 wuyazhe 的回复:
想办法调用StartEvent,事件不能外部触发
谢谢,这个我还真没注意到,现在问题是StartEvent即使触发了,我该怎么监控到?
兔子-顾问 2013-06-27
  • 打赏
  • 举报
回复
想办法调用StartEvent,事件不能外部触发
irix2008 2013-06-27
  • 打赏
  • 举报
回复
classtemp.GetType.getEvent("事件名").addeventhandler 或 addhandler classtemp.MyEvent addressof ...

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧