2011-08-07 61 views
2

我只能用序列化,使用WCF等等。 但是在.Net中的兩個進程之間是否有標準的通信方式?如何在進程之間進行通信?

更新:我實際上是指如何在本地進行2個進程之間的通信,當我根本不需要使用WCF,Remoting和網絡時。有沒有辦法做到這一點?我比用硬盤或數據庫存儲數據更優雅。

+1

溝通什麼類型的?你的意思是來回發送命令,還是隻發送數據? – Jordan

+0

本地或遠程?可靠還是盡力而爲?同步或異步(排隊)?點到點pub-sub?一種尺寸不適合所有。 –

+0

@Remus Rusanu:在當地,但根據你的下一個選擇,它有不同的方式嗎? –

回答

5

沒有其他的信息,我建議使用WCF與命名管道配置:

What is the best choice for .NET inter-process communication?

+0

需要哪些附加信息? –

+2

只是上面提出的一些問題 - 你是否需要消息隊列,pub/sub等。如果你只是想跨過進程調用方法,WCF是重新開始的方法。你可能會遇到很多「.NET Remoting」,但正如Anuj所說,在這一點上它有點陳舊。 –

+0

我不需要消息隊列,發佈/訂閱等,但當然知道如果我願意怎麼做會很有趣。這是否意味着我需要使用其他方式(不是WCF)? –

1

你也可以看看.NET遠程處理。但是對於所有的意圖和目的,除非您有明確的要求滿足遠程處理,如進程內,跨應用程序域的通信,否則您不應該使用它。

我只看WCF的NetNamedPipeBinding。這聽起來像它正是你想要的:http://www.codeproject.com/KB/WCF/wcfipcsample.aspx

而且似乎這個問題已經有了答案:

Interprocess communication for Windows in C# (.NET 2.0)

C# - WCF - inter-process communication

+0

我知道WCF,這就是爲什麼我在問題中提到它。我所問 - 有沒有共同的做法。換句話說,微軟建議做些什麼? –

相關問題