2

由于我以前从未有过这样做的理由,所以我不知道如何执行以下操作,或者是否有可能?!

我有一个 C# winforms 单实例应用程序(从属),它上面有一个控件,可以使用自定义 .Net 控件显示计划数据。该应用程序需要从 DynamicsNAV / Navision (Master) 打开,因为它不能使用正在使用的控件。

一旦 Master 打开 Slave 应用程序,它需要传递一个参数,以便 Slave 可以收集正确的数据并显示它。我知道我可以将它作为命令行参数传递,但我们真正想做的是将它传递到一个方法中,以便我们可以随时更新 Slaves Schedule。我已经在 Slave 应用程序中创建了一个公共方法,但现在我不知道如何打开它并调用该方法。我想获得一个使用 Master winforms 应用程序的工作示例,但也无法使其正常工作。

任何人都可以提供任何建议或帮助吗?

谢谢,卡尔

4

3 回答 3

2

如果您使用 Dynamics NAV 6 R2 和 Role Tailored Client,您可以使用.NET 互操作来调用 WinForms 应用程序上的方法。如果您使用的是 Classic 客户端,您需要实现一个 COM 组件来做同样的事情。

在这种情况下,WinForms 应用程序是“服务器”,而 NAV 是“客户端”。您可以在 MSDN 上看到一个如何使用 IpcChannel 工作的示例。

于 2011-08-23T19:46:49.353 回答
0

是的,您可以这样做——通常这被称为“进程间通信”。

有许多可用的方法,但只要您使用 .Net 3.5 或更高版本,您可能应该为此使用 WCF(Windows Communication Foundation)。互联网上有许多关于 WCF 的指南和介绍。

如果您使用的是 3.5 之前的 .Net 版本,请查看.Net remoting

于 2011-08-22T10:48:09.843 回答
0

以任何形式(命令参数、文件、TCP/IP 套接字等)发送数据、解析数据并使用从分离创建的参数调用您创建的命令怎么样?

于 2011-08-22T10:48:45.443 回答