远程winforms应用程序中的调用方法?

时间:2011-08-22 09:45:53

标签: c# winforms navision dynamics-nav

由于我以前没有理由这样做,我不知道如何做以下,或者甚至可能做到这一点?!

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

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

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

谢谢, 卡尔

3 个答案:

答案 0 :(得分:2)

如果您使用的是Dynamics NAV 6 R2和角色定制客户端,则可以使用.NET interop来调用WinForms应用程序上的方法。如果您使用的是Classic客户端,则需要实现COM组件来执行相同的操作。

在这种情况下,WinForms应用程序是“服务器”,NAV是“客户端”。您可以在MSDN上查看使用IpcChannel here的方法。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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