2010-01-17 43 views
15

我有两个C#程序,我想在它们之间来回发送一些数据。 (并检查数据是否到达其他应用程序。) 这两个程序将始终运行在同一台计算机上,因此不需要网络功能。我已经阅读过一些类似主题的问题,但我不完全确定哪种方法适合我。 (WCF,Remoting等)C#应用程序之间的通信 - 简单的方法

我想知道的是,在C#中初学者更容易实现哪一个? (我不希望它变得太复杂,只是我想发送的一些整数和一些文本。)

如果在难度上没有真正的区别,那么它有什么优势另一个?

我真的很感谢一些简单的示例代码。

在此先感谢。

+2

没有什么可以添加到WCF的建议,但远离Remoting。对于其他应用程序的对象进行亲密操作,远远优于对WCF的消息传递。 – itowlson 2010-01-17 20:39:37

回答

11

WCF本质上将应用程序(web服务,远程处理,MSMQ等)之间的各种通信方法打包在一个包中,以便它们在编程方式上与使用方式相同,并详细说明了哪些方法用于留给配置之间的绑定。也许略有简化,但基本上是关于它的。

如果您需要进程间通信,那么进入WCF是值得的,这当然是我的建议。值得一看的是IDesign,他们编写了大量关于这个主题的文章,以及一些可重用的代码库,您可能会感兴趣。他们的Juval Lowy也写了关于这个问题的excellent book

+0

感谢您的快速总结和链接,它确实帮助我们很好地了解了WCF。 – 2010-01-20 22:43:54

13

您可以使用Pipes在应用程序的不同实例之间发送数据。如果您只需告诉另一个实例发生了什么情况,则可以使用SendMessage API将消息从一个应用程序发送到另一个应用程序。

+3

最好的建议,简单可靠。忘记WCF吧,它的设计过于可笑。 – dpurrington 2010-01-17 21:56:55

+0

请注意,[msdn](https://msdn.microsoft.com/en-us/library/system.io.pipes.anonymouspipeserverstream(v = vs.110).aspx)表示匿名管道被定义为one-办法。 – 2015-06-20 13:56:52

+0

我希望我可以upvote两次。 WCF就是这样一头猪,如果那些是我唯一的选择,我宁愿使用文件下载进行应用程序通信。 – 2016-06-02 01:57:51

5

关于WCF的另一个好处是,如果您的需求发生变化,并且突然之间您必须将应用程序之一移动到另一台机器上,现在需要网络功能,您只需要更改双方的配置,而不必重新编码。

此外,广告大卫说,WCF是一个很好的工具,在你的包里。

干杯,瓦格纳。

2

我发现MSMQ很容易实现。

相关问题