我有兩個C#應用程序。第一個創建對象的實例,設置了一些屬性等C#在應用程序之間共享實例
第二應用需要可以訪問這個實例其屬性集等
有沒有一種方法,我可以做到這一點。也許存儲在操作系統內的實例或類似的東西?
我發現我可以堅持一個對象,但第一個應用程序正在創建一個低級別接口的連接,需要一些時間來連接。我想保持連接打開並讓其他應用程序使用它。
我有兩個C#應用程序。第一個創建對象的實例,設置了一些屬性等C#在應用程序之間共享實例
第二應用需要可以訪問這個實例其屬性集等
有沒有一種方法,我可以做到這一點。也許存儲在操作系統內的實例或類似的東西?
我發現我可以堅持一個對象,但第一個應用程序正在創建一個低級別接口的連接,需要一些時間來連接。我想保持連接打開並讓其他應用程序使用它。
您需要一些手段進程間通信。回到「過去的日子」,這是用.NET Remoting完成的,但是這項技術已經被棄用了。
Microsoft當前推薦的用於進程間通信的.NET技術是Windows Communication Foundation(WCF)。是的,有些人可能會認爲這對於簡單的對象共享來說是過分的,但這是目前支持和推薦的用於此目的的技術。
WCF和其他選項的高級概述可以在以下MSDN文章中找到:
描述你不能做到這一點。沒有兩個應用程序可以跨應用程序邊界共享內存。相反,當你將對象從一個傳遞給另一個時,它們會被序列化,如果你需要一個或另一個來響應變化,你應該查看事件回調等。我建議尋找這個WCF服務。
參見:What is the best choice for .NET inter-process communication?
要進程間通信WCF是最好的選擇。它支持a number of different transport mechanisms (including Named Pipes) 並且可以完全由配置驅動。我強烈建議你看一下WCF的 。
參考文獻:
How to communicate with a windows service from an application that interacts with the desktop?
What is the simplest method of inter-process communication between 2 C# processes?
Simple Inter-process Communication system for .NET framework
您是否嘗試過的RabbitMQ?或者其他任何消息系統? – titol