Example #1
0
        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();
        }
Example #2
0
        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();
        }