添加命名空間:Using System.Reflection 1 public object InvokeExternDll(string DllPath,string ClassName,string FunctionName,object[] ObjArray_Parameter) 2 { 3 object objReturnValue = new object(); 4 5 //加載DLL文件 6 Assembly assembly = Assembly.LoadFile(DllPath); 7 8 //獲取所需類的類型 格式:"namespaceName.className" 9 Type classType = assembly.GetType(ClassName); 10 11 //建立此類型的對(duì)象 12 Object specificObj = Activator.CreateInstance(classType); 13 14 //獲取類中的想要執(zhí)行的方法 15 MethodInfo ExecuteMethod = classType.GetMethod(FunctionName); 16 17 //調(diào)用函數(shù) 18 objReturnValue = ExecuteMethod.Invoke(specificObj, ObjArray_Parameter); 19 20 return objReturnValue; 21 } 反射加載數(shù)據(jù)的用法: Load("DllName") //dll 名稱無后綴,從當(dāng)前目錄中加載 LoadFie(DllPath) //加載Dll完整路徑 從一個(gè)指定文件中加載程序集 LoadFrom(DllPath) //加載Dll完整路徑的程序集 同時(shí)加載目標(biāo)程序集所引用和依賴的其他程序集 |
|