从 WPF 应用程序启动控制台应用程序

mHe*_*pMe 0 .net c# wpf

我想知道是否可以从 WPF 应用程序启动控制台应用程序。

在我的控制台应用程序中,我添加了一个名为 Reports 的类。在我的 WPF 应用程序中,我创建了一个 Reports 对象并调用其公共方法之一。

它调用的方法包含以下代码。问题在于代码不会等待用户输入任何输入,因此它会在 ValidateUserInput 中崩溃。我也没有看到任何控制台应用程序实际加载。我看不到如何在我的控制台应用程序中调用 Program 类的 Main 方法。你可能会说我很迷茫。

Console.WriteLine("*** Running Report ***");                
Console.WriteLine("User enter something:");
string myStr = Console.ReadLine();
ValidateUserInput(myStr);
Run Code Online (Sandbox Code Playgroud)

Roh*_*ats 5

由于您正在运行 WPF 应用程序,如果在调试模式下运行,所有控制台输出都会转到 Visual Studio 的输出窗口。

要实际启动控制台应用程序,您必须手动打开控制台窗口并在使用后关闭它。在您的类中添加以下方法:

[DllImport("Kernel32")]
public static extern void AllocConsole();

[DllImport("Kernel32", SetLastError = true)]
public static extern void FreeConsole();
Run Code Online (Sandbox Code Playgroud)

现在,使用这样的方法:

AllocConsole();
report.ConsoleMethod() // Method to console application.
FreeConsole();
Run Code Online (Sandbox Code Playgroud)