加载dll
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Device.Interface.dll"); var assembly = Assembly.LoadFrom(path);
获取程序集指定名称的类实例
var type = assembly.GetType("Device.Interface.Tool");
获取类的方法(示例为获取公共的静态方法)
var methods = type.GetMethods(BindingFlags.Static | BindingFlags.Public);
method.Invoke()的第一个参数为类实例,如果调用静态方法,此参数为空;第二个参数为调用方法的输入参数。
执行静态方法,第一个参数为null
type.GetMethod(methodName).Invoke(null, new object[]{});
执行实例方法,先创建类实例,再调用方法:
var instance = Activator.CreateInstance(type);
type.GetMethod(methodName).Invoke(instance, new object[]{});