首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

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

2013-07-04 
请问如果获取动态加载DLL 类里面的事件?本帖最后由 action20 于 2013-06-27 09:06:20 编辑小弟现在已经能

请问如果获取动态加载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 ...

热点排行