如何在C#中为托管控制台应用程序提供多个输入源?

如何在C#中为托管控制台应用程序提供多个输入源?,c#,console-application,read-eval-print-loop,inter-process-communicat,C#,Console Application,Read Eval Print Loop,Inter Process Communicat,我想构建一个交互式脚本应用程序,允许用户在REPL中编写单个表达式,但也允许用户从代码编辑器向其发送代码。我想我应该尝试一种解决方案,其中REPL是一个控制台应用程序,编辑器是一个单独的应用程序,托管控制台应用程序。因此,控制台应用程序(REPL)必须同时接受来自键盘和编辑器应用程序的用户输入 如果我在编辑器中托管控制台应用程序(REPL),我可以重定向标准输入,从而可以将文本(代码)发送到控制台应用程序(请参阅下面的代码)。但是,有没有可能在运行时向控制台应用程序提供多个输入源,或者切换输入源

我想构建一个交互式脚本应用程序,允许用户在REPL中编写单个表达式,但也允许用户从代码编辑器向其发送代码。我想我应该尝试一种解决方案,其中REPL是一个控制台应用程序,编辑器是一个单独的应用程序,托管控制台应用程序。因此,控制台应用程序(REPL)必须同时接受来自键盘和编辑器应用程序的用户输入

如果我在编辑器中托管控制台应用程序(REPL),我可以重定向标准输入,从而可以将文本(代码)发送到控制台应用程序(请参阅下面的代码)。但是,有没有可能在运行时向控制台应用程序提供多个输入源,或者切换输入源,以便用户既可以在REPL中键入代码,也可以从代码编辑器向其发送代码?或者我必须有一个单一的流程解决方案

Process replProc = new Process();
replProc.StartInfo.FileName = "repl.exe";
replProc.StartInfo.UseShellExecute = false;
replProc.StartInfo.RedirectStandardInput = true;
replProc.Start();
StreamWriter replWriter = replProc.StandardInput;
replWriter.WriteLine(@"
    public class ScriptedClass 
    {
       public string HelloRepl
       {
          get { return ""Hello from editor!"";}
       }
    }");
您可以将其用于进程间通信。。。。。或