zoukankan      html  css  js  c++  java
  • 通过反射动态调用外部托管Dll

    添加命名空间: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             //建立此类型的对象
    12             Object specificObj = Activator.CreateInstance(classType);
    13 
    14             //获取类中的想要执行的方法
    15             MethodInfo ExecuteMethod = classType.GetMethod(FunctionName);
    16 
    17             //调用函数
    18             objReturnValue = ExecuteMethod.Invoke(specificObj, ObjArray_Parameter);
    19 
    20             return objReturnValue;
    21         }

    反射加载数据的用法:

    Load("DllName")  //dll 名称无后缀,从当前目录中加载

    LoadFie(DllPath) //加载Dll完整路径 从一个指定文件中加载程序集

    LoadFrom(DllPath) //加载Dll完整路径的程序集 同时加载目标程序集所引用和依赖的其他程序集

  • 相关阅读:
    洛谷提高组比赛day2
    清北合肥day2-day5
    高精度开根
    清北合肥day1
    愤怒的小鸟
    蓝书图论题
    替罪羊树&&非旋treap
    【bzoj4811】[Ynoi2017]由乃的OJ 树链剖分+线段树区间合并
    【bzoj3866】The Romantic Hero dp
    【bzoj3747】[POI2015]Kinoman
  • 原文地址:https://www.cnblogs.com/YourDirection/p/12124610.html
Copyright © 2011-2022 走看看