重定向控制台&使用Roslyn编译器调试输出

时间:2016-05-06 15:52:52

标签: c# .net console roslyn

如果我有以下代码使用Roslyn编译器写入控制台和调试输出。如何重定向输出,以便Execute函数可以返回它们以及实际结果。

await Execute("System.Console.Write(\"Hello\"); System.Diagnostics.Debug.Write(\"World\"););

public async Task<object> Execute(string code)
{
    return await CSharpScript.EvaluateAsync(code);
}

2 个答案:

答案 0 :(得分:2)

只需调用Console.SetOut即可更改Console.Write *写入的流。然后,一旦运行完代码,您就可以将其读回来。同样,对于Debug.Write,您可以编辑TraceListeners集合。

答案 1 :(得分:0)

你做不到。一旦它被编译,它就是你自己的过程中的代码。

您可以编译完整的可执行文件,将其保存到磁盘,然后重定向运行。