1

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

我遇到了很多问题,所以我不知道如何进行:

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

2- 我想开发一个小 dll 来在控制台和 WPF 应用程序之间进行通信,但我不知道哪种技术会轻巧、高效并适合我的需求。

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

谢谢,

4

3 回答 3

0

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

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

您正在寻找的通常称为“进程间通信”。命名管道是 IPC 的一种类型,可以在 .net 中使用。本指南应该可以帮助您入门。

于 2013-10-16T09:07:51.820 回答
0

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

于 2013-10-16T08:56:28.437 回答