我一直在编写一些使用C#作为Gui的应用程序,但是通过脚本(可能是Python,Ruby等)完成所有工作。
要将脚本中的信息传递回GUI(例如错误报告等),我通常会通过Process和
调用脚本。这些方法似乎都不理想(第二种方法简直太糟糕了)但我没有看到任何其他方法。也许没有,但我认为在开始另一个有类似问题的应用程序之前值得问一下。
由于
答案 0 :(得分:4)
使用ProcessStartInfo.RedirectStandardInput
,ProcessStartInfo.RedirectStandardOutput
和ProcessStartInfo.RedirectStandardError
(以及Process.ExitCode
)完全没问题,特别是当您的脚本严格遵循某个惯例时:
stderr
MessageBox
(如果适用)您的用户界面可以轻松实现:
stdout
和stdout
读入单独的缓冲区,直到脚本终止stderr
为空,请通知用户stderr
Operation completed successfully
非空,请通知用户stderr
,允许用户选择性地检查来自Operation completed with warnings
缓冲区的警告stderr
,允许用户检查Operation has failed with errors
缓冲区中的错误