1、利用反射进行动态加载和调用.
Assembly assembly=Assembly.LoadFrom(DllPath); //利用dll的路径加载,同时将此程序集所依赖的程序集加载进来,需后辍名.dll
Assembly.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) =>
{
}
));
}