1
我設法使用CodeDom創建一個類並向該類添加單個方法。現在,有沒有辦法構建CodeCompileUnit實例,編譯代碼並調用生成的方法?方法調用必須在與代碼生成相同的上下文中完成。編譯並調用生成的方法
我設法使用CodeDom創建一個類並向該類添加單個方法。現在,有沒有辦法構建CodeCompileUnit實例,編譯代碼並調用生成的方法?方法調用必須在與代碼生成相同的上下文中完成。編譯並調用生成的方法
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
codeProvider.GenerateCodeFromNamespace(codeNamespace, new StringWriter(), new CodeGeneratorOptions());
CompilerParameters param = new CompilerParameters(assemblyReferences);
param.GenerateExecutable = false;
param.GenerateInMemory = true;
param.TreatWarningsAsErrors = false;
param.WarningLevel = 4;
CompilerResults results = codeProvider.CompileAssemblyFromDom(param, compileUnit);
Assembly assembly = results.CompiledAssembly;
Type[] types = assembly.GetExportedTypes();
然後,您可以使用反射的類型來創建你想要的類型的實例,並執行任何你想要的方法。