读书人

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

发布时间: 2013-07-04 11:45:33 作者: rapoo

请问如果获取动态加载DLL 类里面的事件?
本帖最后由 action20 于 2013-06-27 09:06:20 编辑 小弟现在已经能够动态的加载一个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不支持?那我该怎么办?谢谢!!~~~ 函数 类 vb.net


[解决办法]
想办法调用StartEvent,事件不能外部触发
[解决办法]
classtemp.GetType.getEvent("事件名").addeventhandler



addhandler classtemp.MyEvent addressof ...

读书人网 >VB Dotnet

热点推荐