2011-08-22 81 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套接字,無論什麼),解析數據並使用從分隔創建的參數調用您創建的命令?