zoukankan      html  css  js  c++  java
  • 反射.CS文件(动态加载.CS文件)(

    //假设我们己经把b.cs文件上传到TempDll文件夹下,下面我们取得该文件和将要生成的DLL文件路径
            string strCS = Server.MapPath("TempDll/b.cs");
            string strDll = strCS.Substring(0, strCS.LastIndexOf(".")) + ".dll";
     

             CodeDomProvider   COD =  new  Microsoft.CSharp.CSharpCodeProvider();
             COD = new Microsoft.CSharp.CSharpCodeProvider();
            CompilerParameters COM = new CompilerParameters();
             //生成DLL,True为生成exe文件,false为生成DLL文件
            COM.GenerateExecutable = false;
            COM.OutputAssembly = strDll;
            //把CS文件生成DLL
            CompilerResults COMR = COD.CompileAssemblyFromFile(COM, strCS);

          //下面我们就可以根据生成的Dll反射为相关对象,供我们使用了.
            Assembly a = Assembly.LoadFrom(strDll);
            Type  t = a.GetType("b");
            object obj = Activator.CreateInstance(t);
            t.GetMethod("run").Invoke(obj,null);

         


           //备注:
             // (1)反射的.CS文件中只能引用SYSTEM命名空间
             //   (2)我们也可以直接把CS文件转化为流反射进程序,但这样会大大减慢程序运行.
             //   (3)所以先上传.CS文件并生成.DLL文件,供程序反射使用会相应降低运行成本

  • 相关阅读:
    nginx配置反向代理
    hyperchain HVM使用java编写智能合约的编译、部署流程
    leetcode 140单词拆分Ⅱ
    bomblab phase5
    bomb lab 二三阶段
    2021暑假算法学习笔记(基础复习)#2
    2021暑假算法学习笔记(基础复习)#1
    O(logn)最长上升子序列并输出
    A Daily Topic # 7 阶乘的和(二进制/枚举)
    A Daily Topic # 6 星期几(模拟)
  • 原文地址:https://www.cnblogs.com/aaa6818162/p/2207259.html
Copyright © 2011-2022 走看看