我想知道是否可以从WPF应用程序启动控制台应用程序。
在我的控制台应用程序中,我添加了一个名为Reports的类。在我的WPF应用程序中,我创建一个Reports对象并调用其公共方法之一。
它调用的方法包含以下代码。问题是代码不会等待用户输入任何输入,因此它会在ValidateUserInput中崩溃。我也没有看到任何控制台应用程序实际加载。我无法在控制台应用程序中看到如何调用Program类的Main方法。你可能会说我很丢失。
Console.WriteLine("*** Running Report ***");
Console.WriteLine("User enter something:");
string myStr = Console.ReadLine();
ValidateUserInput(myStr);
答案 0 :(得分:4)
由于您正在运行WPF应用程序,因此如果在调试模式下运行,所有控制台输出都将转到Visual Studio的输出窗口。
要实际启动控制台应用程序,您必须 手动打开控制台窗口并在使用后关闭它 。在您的课程中添加以下方法:
[DllImport("Kernel32")]
public static extern void AllocConsole();
[DllImport("Kernel32", SetLastError = true)]
public static extern void FreeConsole();
现在,使用这样的方法:
AllocConsole();
report.ConsoleMethod() // Method to console application.
FreeConsole();