从另一个控制台应用程序启动WPF应用程序中的操作

时间:2013-10-16 08:48:57

标签: c# wpf command-line console-application communication

我有一个WPF应用程序,我需要从另一个控制台应用程序启动一些操作(并接收返回值)。

我遇到了很多问题所以我不确切知道如何继续:

1-我尝试使用带参数的命令行(它可以启动wpf应用程序),但我无法接收返回值,因为它们仅在应用程序关闭时返回。此外,它不符合我的需要,因为在wpf应用程序仍在运行时必须调用某些操作。

2-我认为开发一个小的dll来在Console和WPF应用程序之间进行通信,但我不知道哪种技术轻巧,高效并且符合我的需求。

过去有没有人完成类似的任务?如果是这样,你是怎么做到的?

谢谢,

3 个答案:

答案 0 :(得分:0)

您可以使用WCF技术来实现这一目标。在wpf应用程序中定义合同,在那里你应该设置你想要管理你的应用程序的动作逻辑 - 方法。如果是单面的,请在WPF应用程序中使用netTcpBinding并创建端点 - 它是来自outeside的命令的监听器。然后在您的控制台应用程序中使用svcutil添加wpf应用程序的代理类。这将允许您发送命令。如果你做的一切都正确 - 这应该工作。我想你有1个wpf应用程序和1个控制台应用程序。

答案 1 :(得分:0)

您可以启动您的wpf应用,然后使用:

  1. 命名管道 - 最简单的方法,但您必须创建应用程序之间的交互协议。例如,您可以传输序列化对象。 (example);
  2. 共享文件;
  3. WCF - 最强大,最复杂的技术。

答案 2 :(得分:0)

您正在寻找的通常被称为“进程间通信”。命名管道是一种IPC,可以在.net中使用。这个guide应该可以帮到你。