public MyServiceWrapper(MyRemoteService remoteService, MyLocalService localService) { _remote = remoteService; _local = localService; LoadSettings(); }
static void Main(string[] args) { int n = 10000; TcpChannel channel = new TcpChannel(); ChannelServices.RegisterChannel(channel); MyRemoteService obj = (MyRemoteService)Activator.GetObject(typeof(MyRemoteService), "tcp://127.0.0.1:1234/MyRemoteObject"); DateTime start, end; TimeSpan duration; Param1 param = new Param1(); param.UserName = "******"; param.Id = 10; Stopwatch watch = new Stopwatch(); watch.Start(); for (int i = 0; i < n; i++) { var sucess = obj.SetValue(i, param); Console.WriteLine(i + sucess.ToString()); } watch.Stop(); Console.WriteLine(string.Format("client seted value for remote service. Execution took {0} milliseconds", (float)watch.ElapsedMilliseconds / n)); /*Console.WriteLine("Client set value"); * start = System.DateTime.Now; * obj.setValue(45); * end = System.DateTime.Now; * duration = end.Subtract(start); * Console.WriteLine(string.Format("client seted value for remote service. Execution took {0} milliseconds", duration.TotalMilliseconds)); * Console.WriteLine("Client get value"); * start = System.DateTime.Now; * int result = obj.getValue(); * end = System.DateTime.Now; * duration = end.Subtract(start); * Console.WriteLine(string.Format("Client geted value from remote service. value = {0}. Execution took {1} milliseconds ", result, duration.TotalMilliseconds)); * Console.WriteLine("client call DoIt method of the remoteService"); * Param1 param = new Param1(); * param.E = "Say hello"; * param.I = 10; * start = DateTime.Now; * obj.DoIt(param); * end = DateTime.Now; * duration = end - start; * Console.WriteLine(string.Format("Execution took {0} miliseconds", duration.TotalMilliseconds)); * Console.ReadLine(); * * * string a = "context"; * Param1 param = new Param1(); * param.E = "Say hello"; * param.I = 10; * SetValueDelegate setdel = new SetValueDelegate(obj.SetValue); * GetValueDelegate getdel = new GetValueDelegate(obj.GetValueSimple); * IAsyncResult ar = setdel.BeginInvoke(42, param, CallbackMethod, a); * IAsyncResult ar2 = getdel.BeginInvoke(null, null); * int result2 = getdel.EndInvoke(ar2); * // ... do something different here * //setdel.EndInvoke(ar); * * Console.WriteLine("Got result: '{0}'", result2); * * //wait for return to close * Console.ReadLine();*/ Console.ReadLine(); }