static void Main(string[] args) { IDIContainer di = CreateDI(); di.Register <IWCFConfigManager>(() => new WCFConfigManager()); IRemoteOperationHandler roh = new RemoteOperationHandler(di); RemoteSideCommunicator roc = new RemoteSideCommunicator(roh); di.Register <IRemoteSideCommunicationContract>(() => roc); di.Register <IRemoteSideCommunicationHandler>(() => roc); WCFServiceClientFactory factory = new WCFServiceClientFactory(di); var rs = factory.CreateInstance(); System.Console.WriteLine("Client started!"); System.Console.WriteLine("Press Enter to call server side Add method."); System.Console.ReadLine(); RemoteOperationDescriptor rod = new RemoteOperationDescriptor(typeof(ICalc).AssemblyQualifiedName, "Add", 1, 2); int sum = roc.ExecuteOnRemoteSide <int>(rs.ID, rod); System.Console.WriteLine("Add(1,2) = {0}", sum); System.Console.WriteLine("Press Enter to stop service client!"); System.Console.ReadLine(); }
public static void Main(string[] args) { IDIContainer di = CreateDI(); di.Register <IWCFConfigManager>(() => new WCFConfigManager()); di.Register <ICalc>(() => new CalcImpl()); IRemoteOperationHandler roh = new RemoteOperationHandler(di); RemoteSideCommunicator roc = new RemoteSideCommunicator(roh); di.Register <IRemoteSideCommunicationContract>(() => roc); di.Register <IRemoteSideCommunicationHandler>(() => roc); WCFServiceHostFactory factory = new WCFServiceHostFactory(di); var rs = factory.CreateInstance(); rs.Open(); System.Console.WriteLine("Server started!"); System.Console.WriteLine("Waiting for client operations!"); System.Console.WriteLine("Press Enter to stop service host!"); System.Console.ReadLine(); }