我如何获取用CSharpCodeProvider编写到控制台的内容



我使用以下方法在运行时编译C#:

CompilerParameters parameters = new CompilerParameters
        {
            GenerateInMemory = true,
            GenerateExecutable = true,
            IncludeDebugInformation =  true
        };

        // True - memory generation, false - external file generation
        // True - exe file generation, false - dll file generation
        var res = pro.CompileAssemblyFromSource(parameters,
            code);
        Assembly assembly = res.CompiledAssembly;
        Type program = assembly.GetType("First.Program");
        MethodInfo main = program.GetMethod("Main");
        var invoke = main?.Invoke(null, null);

res.Output是一个空列表,如果代码有Console.WriteLine(),但它会被写入主应用程序的控制台,但是;我想抓住写的东西。

您还应该检查res.Errors。如果有错误,那么它们将在那里。 如果 ErrorsOutput 都为空,则您可能已成功编译,没有任何输出。检查:cr.NativeCompilerReturnValue.ToString()

相关内容

  • 没有找到相关文章

最新更新