动态调用dll

来源:互联网 发布:跨平台网络库 编辑:程序博客网 时间:2024/06/03 18:28

1、利用反射进行动态加载和调用.

 Assembly assembly=Assembly.LoadFrom(DllPath); //利用dll的路径加载,同时将此程序集所依赖的程序集加载进来,需后辍名.dllAssembly.LoadFile 只加载指定文件,并不会自动加载依赖程序集.Assmbly.Load无需后辍名

2、加载dll后,使用dll中某类.

Type type=ass.GetType(“TypeName”);

3、需要实例化类型

Object obj = Activator.CreateInstance(type,params[]);

4、调用类型中的某个方法:

MethodInfo mi=type.GetMethod(“MehtodName”);

5、对方法进行调用

Object obj = mi.Invoke(obj,params[]);

6、调用静态方法
(Object)type.InvokeMember("Create", BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Static | BindingFlags.InvokeMethod, null,null, new object[] { obj });

7、事件

                EventInfo eventinfo = type.GetEvent("ChangedEvent");                if (eventinfo != null)                {                    // 为事件动态绑定处理程序                    eventinfo.AddEventHandler(obj, new EventHandler(                        (sender, e) =>                         {                         }                    ));                }


原创粉丝点击