使用 WCF 通过 Windows 服务和 Windows 窗体应用程序进行通信

目前,我在 Visual Studio 2017 中有 2 个解决方案:

  1. Windows 窗体应用程序

  2. 承载 WCF 服务类库 (.dll) 的 Windows 服务应用程序

我需要以循环方式在它们之间进行通信,如下图所示。数字代表顺序。

http://img4.mukewang.com/610e4de50001cf6905290193.jpg

问题是,我实际上能够通过使用请求-重放操作契约(由数字 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( );

        }

    }

}


弑天下
浏览 296回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP