C# 重定向控制台&;使用Roslyn编译器调试输出
如果我有以下代码使用Roslyn编译器写入控制台并调试输出。如何重定向输出,以便Execute函数可以返回这两个结果以及实际结果C# 重定向控制台&;使用Roslyn编译器调试输出,c#,.net,console,roslyn,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.Evalua
await Execute("System.Console.Write(\"Hello\"); System.Diagnostics.Debug.Write(\"World\"););
public async Task<object> Execute(string code)
{
return await CSharpScript.EvaluateAsync(code);
}
wait Execute(“System.Console.Write(\“Hello\”);System.Diagnostics.Debug.Write(\“World\”);
公共异步任务执行(字符串代码)
{
返回wait CSharpScript.EvaluateAsync(代码);
}
你不能。一旦它被遵守,它就是你自己过程中的代码
您可以编译一个完整的可执行文件,将其保存到磁盘,然后重新定向运行。只需调用
控制台。SetOut
即可更改控制台的流。Write*写入。然后您可以在运行完代码后将其读回。同样,对于Debug.Write,您可以编辑TraceListeners
集合。您可以解析并重新写入使用自己的函数替换控制台
的调用。