1/1页1 跳转到查看:1493
发新话题 回复该主题

vb.net动态加载程序集并且调用集合方法

vb.net动态加载程序集并且调用集合方法

Imports SystemQH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
Imports System.ReflectionQH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
Imports System.IOQH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
Namespace RemoteUserQH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
    Public Class RemoteUserClassQH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
        Public Sub New()QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '装载程序集。QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            Dim name As New AssemblyName()QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            name.CodeBase = "file://" + Directory.GetCurrentDirectory() + "\" + "WorkQueueLib.dll"QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            Dim assembly As Assembly = AppDomain.CurrentDomain.Load(name)QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            ' 实例化自定义控件方法1。QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            Dim remoteObj As Object = assembly.CreateInstance("WorkQueueLib.VBWorkQueue.Queue")QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '实例化自定义控件方法2。QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            'Dim Queue As Object = remoteType.InvokeMember(Nothing, _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '                                              BindingFlags.DeclaredOnly Or _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '                                              BindingFlags.Public Or _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '                                              BindingFlags.NonPublic Or _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '                                              BindingFlags.Instance Or _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '                                              BindingFlags.CreateInstance, _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '                                              Nothing, _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '                                              Nothing, _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '                                              Nothing)QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '获得程序集类型。QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            Dim remoteType As Type = assembly.[GetType]("WorkQueueLib.VBWorkQueue.Queue")QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '设置空间随窗体改变大小。QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            remoteObj.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
                                    System.Windows.Forms.AnchorStyles.Bottom) Or _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
                                    System.Windows.Forms.AnchorStyles.Left) Or _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
                                    System.Windows.Forms.AnchorStyles.Right), _QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
                                    System.Windows.Forms.AnchorStyles)QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            'obj2.Location = New System.Drawing.Point(171, 190)QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            remoteObj.Name = "Queue"QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            remoteObj.Size = New System.Drawing.Size(500, 253)QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            Form1.Controls.Add(remoteObj)QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            ' Call the method QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            Dim method As MethodInfo = remoteType.GetMethod("InitOutlook1")QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            '给调用方法传递参数。QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            method.Invoke(remoteObj, Nothing)QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            Dim method1 As MethodInfo = remoteType.GetMethod("InitAllFloders")QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            ''参数集合 QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
            method1.Invoke(remoteObj, New Object() {Form1.TreeView1, True})QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
QH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
        End SubQH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
    End ClassQH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY
End NamespaceQH5"¸ÖÊbbs.szblogs.com|7üÈßtÊٟY

TOP

 
1/1页1 跳转到
发表新主题 回复该主题