2008-10-24 21 views

回答

7

我會採取一個野生刺這個,並說你可能想辦公室的應用程序電話回家到您的exe文件?在這種情況下,「exe」是服務器,辦公室應用程序是客戶端。

如果您使用.NET 3.0,WCF可能是您最好的選擇。我會將解決方案分爲三部分:

  1. 「共享合同」。這些是描述您的服務的接口。如果您有自定義數據對象將在應用程序之間傳遞,它們也應在此程序集中定義。該程序集在客戶端和服務器之間共享。有關更多信息,請參閱「Designing Service Contracts」。
  2. 「服務」。這個程序集是你的「exe」,它會引用合同並根據你的服務合同定義類。您的應用程序還將爲您的服務託管一個ServiceClient。這個應用程序的配置文件將定義您的ServiceClient將如何暴露給客戶端(可用作Web服務,tcp等)。有關更多信息,請參閱「Implementing Service Contracts」。
  3. 「客戶端」。您的插件將引用「共享合同」程序集,並將包含基於合同的服務客戶端。客戶端可以使用svcutil.exe工具自動生成。

「exe」和「插件」都需要定義綁定的配置文件。

當您想要在客戶端和服務器之間傳遞數據時,客戶端將從「Shared Contracts」程序集創建一個對象,並將其傳遞給服務客戶端。客戶端的配置文件將確定數據的發送位置。

有關如何創建基本WCF服務的分步教程,check out this Tutorial

2
+0

這是不一樣的問題...我的問題涉及兩個不同的應用程序通信,而不是相同的應用程序運行多次需要一些中央國家對象 – 2008-10-24 03:29:52

1

WCF是要做到這一點最簡單的方法之一。您可以在每個應用程序中註冊一個服務端點,或者如果其中一個是服務,另一個是客戶端,則可以使用單個服務主機。

Check out the getting started tutorials.

1

有許多方法來實現這一目標。我過去曾使用過命名管道。對命名管道的支持現在也內置到.NET中(按照3.0?),所以它非常簡單。

2

是啊。 WCF是要走的路。我建議查看iDesign.net以使用InProcFactory類。您可以將您的辦公室課程放到一個服務中,然後調用您的其他託管服務的應用程序。然後其他服務可以回撥到基於辦公室的服務中。

您可以使用一個IPC端點,這將使通信迅速。

-Scott

相關問題