在C#中,將數據從一個Windows Forms應用程序(Office插件)傳遞到另一個(用C#編寫的exe文件)的最佳方式是什麼?如何在.NET中執行應用程序內通信
3
A
回答
7
我會採取一個野生刺這個,並說你可能想辦公室的應用程序電話回家到您的exe文件?在這種情況下,「exe」是服務器,辦公室應用程序是客戶端。
如果您使用.NET 3.0,WCF可能是您最好的選擇。我會將解決方案分爲三部分:
- 「共享合同」。這些是描述您的服務的接口。如果您有自定義數據對象將在應用程序之間傳遞,它們也應在此程序集中定義。該程序集在客戶端和服務器之間共享。有關更多信息,請參閱「Designing Service Contracts」。
- 「服務」。這個程序集是你的「exe」,它會引用合同並根據你的服務合同定義類。您的應用程序還將爲您的服務託管一個ServiceClient。這個應用程序的配置文件將定義您的ServiceClient將如何暴露給客戶端(可用作Web服務,tcp等)。有關更多信息,請參閱「Implementing Service Contracts」。
- 「客戶端」。您的插件將引用「共享合同」程序集,並將包含基於合同的服務客戶端。客戶端可以使用svcutil.exe工具自動生成。
「exe」和「插件」都需要定義綁定的配置文件。
當您想要在客戶端和服務器之間傳遞數據時,客戶端將從「Shared Contracts」程序集創建一個對象,並將其傳遞給服務客戶端。客戶端的配置文件將確定數據的發送位置。
有關如何創建基本WCF服務的分步教程,check out this Tutorial。
2
1
WCF是要做到這一點最簡單的方法之一。您可以在每個應用程序中註冊一個服務端點,或者如果其中一個是服務,另一個是客戶端,則可以使用單個服務主機。
1
有許多方法來實現這一目標。我過去曾使用過命名管道。對命名管道的支持現在也內置到.NET中(按照3.0?),所以它非常簡單。
1
2
是啊。 WCF是要走的路。我建議查看iDesign.net以使用InProcFactory類。您可以將您的辦公室課程放到一個服務中,然後調用您的其他託管服務的應用程序。然後其他服務可以回撥到基於辦公室的服務中。
您可以使用一個IPC端點,這將使通信迅速。
-Scott
相關問題
- 1. 如何從.Net Web應用程序與Outlook進行通信
- 2. 如何執行.net應用程序的內部測試性能?
- 3. 如何使用C#在內存中執行.NET控制檯應用程序?
- 4. 如何在.NET應用程序中執行python腳本..?
- 5. iOS與.Net應用程序通信
- 6. Java和.NET應用程序通信
- 7. Java應用程序與.NET應用程序通信
- 8. iOS應用程序和.NET應用程序之間的通信?
- 9. 如何在DOM中與Angular 4應用程序進行通信?
- 10. .net和C++應用程序之間的內部通信
- 11. 如何通過WPF應用程序在CMD中執行命令?
- 12. 加速執行C#/ .NET應用程序
- 13. 在java應用程序內執行iconv
- 14. Elixir如何讓傘應用程序中的應用程序進行通信
- 15. 與MySql進行c#.net應用程序通信的問題
- 16. .net MVC應用程序如何使用JWS與核心Java桌面應用程序進行通信?
- 17. .NET如何與Sharpshell COM Extension的Windows Forms應用程序進行通信?
- 18. 如何在python和mac應用程序之間進行通信?
- 19. 如何在iOS應用程序和php之間進行通信?
- 20. 如何在Windows和主應用程序之間進行通信?
- 21. 如何在Android上的應用程序之間進行通信
- 22. 如何在兩個應用程序之間進行通信?
- 23. C++如何在應用程序的DLL之間進行通信?
- 24. 如何在Windows應用程序和Silverlight之間進行通信?
- 25. arduino和rails應用程序如何通過wifi進行通信?
- 26. oob silverlight應用程序如何通過窗口進行通信
- 27. 如何設置.Net應用程序的執行級別
- 28. 執行應用程序關閉執行程序應用程序
- 29. 通過本地網絡在.NET桌面應用程序之間進行通信
- 30. 桌面應用程序如何與Web應用程序通信?
這是不一樣的問題...我的問題涉及兩個不同的應用程序通信,而不是相同的應用程序運行多次需要一些中央國家對象 – 2008-10-24 03:29:52