zoukankan      html  css  js  c++  java
  • C#使用CodeDom动态加载cs文件

    public static object Create(string path)
    {
        var provOptions = new Dictionary<string, string>();
        provOptions.Add("CompilerVersion", "v3.5");
    
        CodeDomProvider codeDomProvider = new CSharpCodeProvider(provOptions);
        CompilerParameters compilerParameters = new CompilerParameters();
        compilerParameters.GenerateExecutable = false;
        compilerParameters.GenerateInMemory = true;
        compilerParameters.ReferencedAssemblies.Add("mscorlib.dll");
        compilerParameters.ReferencedAssemblies.Add("System.dll");
        compilerParameters.ReferencedAssemblies.Add("System.Core.dll");
        string[] code = new string[1];
        code[0] = File.ReadAllText(path);
        CompilerResults compilerResults =
        codeDomProvider.CompileAssemblyFromSource(compilerParameters, code);
    
        Assembly ass = compilerResults.CompiledAssembly;
        var obj = ass.GetTypes().FirstOrDefault();
        return Activator.CreateInstance(obj);
    }

    一定要引用mscorlib,否则CodeDom编译出错

  • 相关阅读:
    36、基于TCP、UDP协议的嵌套字通信
    34、异常以及网络编程
    作业4月15号
    31、反射与内置方法、元类
    30、多态与鸭子类型以及内置函数
    作业4月9号
    29、继承
    作业4月8号
    28、封装
    27、面向对象
  • 原文地址:https://www.cnblogs.com/hont/p/3948553.html
Copyright © 2011-2022 走看看