Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 传递参数以作为控制台或GUI应用程序启动?_C# - Fatal编程技术网

C# 传递参数以作为控制台或GUI应用程序启动?

C# 传递参数以作为控制台或GUI应用程序启动?,c#,C#,我有一个控制台应用程序,它将由一个调度程序启动。如果由于某种原因,该文件的一部分无法构建,我需要一个GUI前端,以便我们可以在第二天使用特定的输入运行它 是否有方法将参数传递到应用程序入口点,以根据传递的参数启动控制台应用程序或GUI应用程序。转到主方法(Program.cs)。您将把您的逻辑放在那里,决定要做什么,并有条件地执行Application.Run()听起来您想要的是作为控制台应用程序或基于命令行开关的windows应用程序运行 如果您查看中的最后一条消息,Jeffrey Knigh

我有一个控制台应用程序,它将由一个调度程序启动。如果由于某种原因,该文件的一部分无法构建,我需要一个GUI前端,以便我们可以在第二天使用特定的输入运行它


是否有方法将参数传递到应用程序入口点,以根据传递的参数启动控制台应用程序或GUI应用程序。

转到主方法(Program.cs)。您将把您的逻辑放在那里,决定要做什么,并有条件地执行Application.Run()

听起来您想要的是作为控制台应用程序或基于命令行开关的windows应用程序运行

如果您查看中的最后一条消息,Jeffrey Knight会发布代码来执行您的请求


但是,请注意,许多“混合”应用程序实际上提供了两个不同的可执行文件(请看visual studio-devenv.exe是gui,devenv.com是控制台)。使用“混合”方法有时会导致难以追踪的问题。

将GUI输出写入一个文件,控制台应用程序在加载时检查该文件。通过这种方式,您的控制台应用程序可以在一次预定操作中完成修复操作和正常操作。

我认为Philip是对的。尽管我在广泛部署的商业应用程序中使用了“混合”方法,但没有出现任何问题。我开始使用的“混合”代码确实存在一些问题,因此我最终修复了它们并重新发布了解决方案


因此,请随意利用它。它实际上很容易使用。在google代码上,更新了此技术的旧codeguru解决方案,并提供了源代码和工作示例二进制文件。

解决方案之一是让控制台应用程序为GUI应用程序编写配置文件(WinForms是最简单的)

我喜欢混合方法,命令行开关看起来很松散

让两个应用程序使用相同的引擎来实现公共功能可能会更简单。可以这样认为,控制台应用程序是供计算机使用的,而GUI应用程序是供人类使用的。由于CLI应用程序将首先执行,因此它可以通过配置文件将其数据传输到GUI应用程序

一个好处是处理引擎的接口更加简洁,因此在将来更易于维护

这将是最简单的,因为配置文件机制很容易获得,并且您不必编写大量格式化和解析例程


如果您不想使用配置机制,您可以直接将JSON或XML序列化写入文件,以便轻松地传输数据。这正是我要找的。我不确定这是否是一个好的实践,或者我是否应该使用两个不同的可执行文件。看,这应该得到更多的关注