C# 使用WCF在两个winform应用程序之间进行通信?
我有两个不同的winform应用程序,App1和app2。App1调用app2的exe(使用DOS命令窗口)并发送消息以启动app2。app2开始执行,一旦完成任务,它会将执行成功的消息发送回app1。如何使用WCF实现此功能。早些时候,同样的代码是用foxpro编写的,这个finc是通过内存管理实现的。这只是实现这一点的概念性方法: 您需要实现WCF服务。 有很多方法可以完成这项任务。其中一个应该是这样的 App1调用服务方法并告知需要执行app2。App1无法等待响应 App2不时对服务进行ping,以查看是否需要执行该服务。 App2完成了它的工作,并调用服务方法告知它已完成 App1将在完成时获得响应 另一个选项不是实现请求/响应,而是从App1 ping服务以查看App2是否完成了它的工作C# 使用WCF在两个winform应用程序之间进行通信?,c#,.net,winforms,wcf,C#,.net,Winforms,Wcf,我有两个不同的winform应用程序,App1和app2。App1调用app2的exe(使用DOS命令窗口)并发送消息以启动app2。app2开始执行,一旦完成任务,它会将执行成功的消息发送回app1。如何使用WCF实现此功能。早些时候,同样的代码是用foxpro编写的,这个finc是通过内存管理实现的。这只是实现这一点的概念性方法: 您需要实现WCF服务。 有很多方法可以完成这项任务。其中一个应该是这样的 App1调用服务方法并告知需要执行app2。App1无法等待响应 App2不时对服务进行
有关如何实现WCF服务,请参见,例如:我认为您需要的是点对点通信,其中两个应用程序(可能在同一台机器上运行,也可能不在同一台机器上运行)异步发送消息。这就是MSN Messenger等聊天程序的工作方式 有一个“简单”的教程 请注意,这并不像听起来那么容易。你可能更愿意 基本上: 在一侧实例化“服务器” 其中UIInterop是一个实现IUIIinterop的类,它是一个服务契约
using System.ServiceModel;
[ServiceContract]
public interface IUIInterop {
[OperationContract]
void SetControlValue (UIControl c);
}
[DataContract]
public class UIControl {
[DataMember]
public String Name { get; set; }
[DataMember]
public String Value { get; set; }
}
代理类=>UIInteropClient
另一方面,使用代理类实现客户机
using ( UIInteropClient proxy = new UIInteropClient("nameDependingOfAppConfig") ) {
proxy.SetControlValue(new UIControl {});
}
======编辑=====
类和接口的名称只反映了我缺乏想象力哇,你不是说
FoxPro
那是一种古老的语言。。你是说winform应用程序是一个FoxPro windows应用程序吗。。?关于使用WCF,您打算做什么?您打算将其改为服务应用程序吗?是的,该应用程序是在Foxpro中构建的,但现在我们正在将代码从Foxpro迁移到C#.net 4.0。。我以为我在过去的Clipper/FoxPro编码时代经历了一场噩梦。。谢谢你。应用程序1应该是服务器,因为有许多应用程序像app2,所有应用程序都应该按顺序执行,一旦执行了app2,则从应用程序1和soo调用app3执行。所有应用程序都在同一个系统上。请建议实现这一目标的最佳方法。非常感谢。应用程序1应该是服务器,因为有许多应用程序像app2,所有应用程序都应该按顺序执行,一旦执行了app2,则从应用程序1和soo调用app3执行。所有应用程序都在同一个系统上。请建议实现这一目标的最佳方法。实现这一目标的方法有很多,而最佳方法取决于太多的变量,因此不可能回答您的问题。请向您公司的架构师或高级开发人员寻求帮助。
using ( UIInteropClient proxy = new UIInteropClient("nameDependingOfAppConfig") ) {
proxy.SetControlValue(new UIControl {});
}