private static void InvokeBatch(IRemoteServ1 service) { try { service.DoSomethingWrong(); Assert.Fail("Expecting exception here"); } catch (Exception ex) { Assert.AreEqual("Remote server or invoker threw Exception with message simple message", ex.Message); } var watch = new System.Diagnostics.Stopwatch(); watch.Start(); // 1000 for (var i = 0; i < 100; i++) { if (i % 1000 == 0) { var collCount0 = GC.CollectionCount(0); var collCount1 = GC.CollectionCount(1); var collCount2 = GC.CollectionCount(2); Console.WriteLine("Collections on Gen 0 {0}, Gen 1 {1}, Gen 2 {2} ", collCount0, collCount1, collCount2); } // Console.WriteLine("new batch "); service.NoParamsOrReturn(); service.JustParams("1"); Assert.IsTrue(service.JustReturn().Equals("abc")); service.ParamsWithStruct(new MyCustomStruct() { Name = "1", Age = 30 }); service.ParamsWithCustomType1(new Impl1() { }); service.ParamsWithCustomType2(new Contract1Impl() { Name = "2", Age = 31 }); service.ParamsAndReturn(Guid.NewGuid(), "", 1, DateTime.Now, 102.2m, FileAccess.ReadWrite, 1, 2, 3.0f, 4.0); service.WithInheritanceParam(new Derived1() { Something = 10, DerivedProp1 = 20 }); var b = service.WithInheritanceRet(); Assert.IsNotNull(b); Assert.IsInstanceOf(typeof(Derived2), b); Assert.AreEqual(10, (b as Derived2).Something); Assert.AreEqual("test", (b as Derived2).DerivedProp2); var enu = service.UsingEnumerators(); Assert.IsNotNull(enu); Assert.AreEqual(2, enu.Count()); var array = service.UsingArray(); Assert.IsNotNull(array); Assert.AreEqual(2, array.Length); service.ReturningNull1(); service.ReturningNull2(); } watch.Stop(); Console.WriteLine("took " + watch.ElapsedMilliseconds); }