反射加载dll 执行方法


//加载程序集(dll文件地址),使用Assembly类   
            string path = AppDomain.CurrentDomain.BaseDirectory + "operation.dll";
            Assembly assembly = Assembly.LoadFile(path);
            
            //获取类型,参数(名称空间+类)   
            Type type = assembly.GetType("operation.yunsuan");

            //创建该对象的实例,object类型,参数(名称空间+类)   
            object instance = assembly.CreateInstance("operation.yunsuan");

            //设置add方法中的参数类型,Type[]类型;如有多个参数可以追加多个   
            Type[] params_type = new Type[2];
            params_type[0] = Type.GetType("System.Int32");
            params_type[1] = Type.GetType("System.Int32");
            //设置add方法中的参数值;如有多个参数可以追加多个   
            Object[] params_obj = new Object[2];
            params_obj[0] = 1;
            params_obj[1] = 2;

            //执行add方法   
            object value = type.GetMethod("add", params_type).Invoke(instance, params_obj);


你可能感兴趣的:(反射,C#)