2011-08-22 84 views
2

因为我从来没有理由这样做,我不知道如何做到以下几点,或者甚至有可能?!在远程winforms应用程序中调用方法?

我有一个C#winforms单实例应用程序(从),它有一个控件,它使用自定义.Net控件显示日程安排数据。该应用程序需要从DynamicsNAV/Navision(Master)打开,因为它无法使用正在使用的控件。

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

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

感谢, 卡尔

回答

2

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

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

0

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

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

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

+0

什么与downvote?有什么方法可以改善这个答案吗? – Justin

0

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