目前,我在 Visual Studio 2017 中有 2 个解决方案:
Windows 窗体应用程序
承载 WCF 服务类库 (.dll) 的 Windows 服务应用程序
我需要以循环方式在它们之间进行通信,如下图所示。数字代表顺序。
问题是,我实际上能够通过使用请求-重放操作契约(由数字 1 和 4 表示)在 WF 和 WCF 应用程序之间进行通信。但我不确定如何完成第 2 步和第 3 步。
WCF接口代码:
namespace SmithWcfService {
[ServiceContract]
public interface ISmithWcfService {
[OperationContract]
void SendRequest( ); //Operation called by Windows Forms
}
}
WCF接口实现代码
namespace SmithWcfService {
public class SmithWcfService : ISmithWcfService {
public void SendRequest( ) {
//Ok, now I need to call Windows service application
}
}
}
Windows 服务代码
namespace SmithWindowsService {
static class Program {
static void Main( ) {
ServiceBase[ ] ServicesToRun;
ServicesToRun = new ServiceBase[ ] {
new SmithWindowsService( )
};
ServiceBase.Run( ServicesToRun );
}
}
}
namespace SmithWindowsService {
public partial class SmithWindowsService : ServiceBase {
private ServiceHost host;
public SmithWindowsService( ) {
InitializeComponent( );
}
protected override void OnStart( string[ ] args ) {
host = new ServiceHost( typeof( SmithWcfService.SmithWcfService ) );
host.Open( );
}
}
}
相关分类