/// <summary> /// 反射执行方法WINFROM /// </summary> /// <param name="strDllName">命名空间</param> /// <param name="strClaName">类</param> /// <param name="strMetName">方法</param> /// <param name="obj_parmer">参数</param> /// <returns>返回结果</returns> public string reflect(string strDllName, string strClaName, string strMetName, object[] obj_parmer) { var ass = System.Reflection.Assembly.LoadFile(Application.StartupPath + "\" + strDllName + ".dll"); Type type = ass.GetType(strDllName + "." + strClaName); //获取类中的方法名 System.Reflection.MethodInfo method_instance = type.GetMethod(strMetName); //对获取的类进行实例 var obj = ass.CreateInstance(strDllName + "." + strClaName); //开始搜索方法 method_instance = type.GetMethod(strMetName); //传入参数 object[] parts = new object[0]; //方法的调用 //注:如果调用的DLL类库中方法是静态的,那么Invoke方法中第一个参数传值为NULL。 // 如果方法不是静态的,那么Invoke方法中第一个参数传值为 obj(上面那个被实例的对象) string result = (string)method_instance.Invoke(obj, obj_parmer); return result; }