static int Main () { R1 myobj = new R1 (); int res = 0; long lres; MyProxy real_proxy = new MyProxy (myobj); R1 o = (R1)real_proxy.GetTransparentProxy (); if (RemotingServices.IsTransparentProxy (null)) return 1; if (!RemotingServices.IsTransparentProxy (o)) return 2; Console.WriteLine ("XXXXXXXXXXXX: " + RemotingServices.GetRealProxy (o)); if (o.GetType () != myobj.GetType ()) return 3; MyStruct myres = o.Add (2, out res, 3); Console.WriteLine ("Result: " + myres.a + " " + myres.b + " " + myres.c + " " + res); if (myres.a != 2) return 4; if (myres.b != 3) return 5; if (myres.c != 5) return 6; if (res != 5) return 7; R1 o2 = new R1 (); lres = test_call (o2); lres = test_call (o); Console.WriteLine ("Result: " + lres); if (lres != 5) return 8; lres = test_call (o); o.test_field = 2; Console.WriteLine ("test_field: " + o.test_field); if (o.test_field != 2) return 9; RemoteDelegate1 d1 = new RemoteDelegate1 (o.Add); MyStruct myres2 = d1 (2, out res, 3); Console.WriteLine ("Result: " + myres2.a + " " + myres2.b + " " + myres2.c + " " + res); if (myres2.a != 2) return 10; if (myres2.b != 3) return 11; if (myres2.c != 5) return 12; if (res != 5) return 13; RemoteDelegate2 d2 = new RemoteDelegate2 (o.nonvirtual_Add); d2 (6, 7); if (!(real_proxy.GetTransparentProxy () is R2)) return 14; /* Test what happens if the proxy doesn't return the required information */ EmptyProxy handler = new EmptyProxy ( typeof (R3) ); R3 o3 = (R3)handler.GetTransparentProxy(); if (o3.anObject != null) return 15; if (o.null_test_field != null) return 16; return 0; }
static int Main() { R1 myobj = new R1(); int res = 0; long lres; MyProxy real_proxy = new MyProxy(myobj); R1 o = (R1)real_proxy.GetTransparentProxy(); if (RemotingServices.IsTransparentProxy(null)) { return(1); } if (!RemotingServices.IsTransparentProxy(o)) { return(2); } Console.WriteLine("XXXXXXXXXXXX: " + RemotingServices.GetRealProxy(o)); if (o.GetType() != myobj.GetType()) { return(3); } MyStruct myres = o.Add(2, out res, 3); Console.WriteLine("Result: " + myres.a + " " + myres.b + " " + myres.c + " " + res); if (myres.a != 2) { return(4); } if (myres.b != 3) { return(5); } if (myres.c != 5) { return(6); } if (res != 5) { return(7); } R1 o2 = new R1(); lres = test_call(o2); lres = test_call(o); Console.WriteLine("Result: " + lres); if (lres != 5) { return(8); } lres = test_call(o); o.test_field = 2; Console.WriteLine("test_field: " + o.test_field); if (o.test_field != 2) { return(9); } RemoteDelegate1 d1 = new RemoteDelegate1(o.Add); MyStruct myres2 = d1(2, out res, 3); Console.WriteLine("Result: " + myres2.a + " " + myres2.b + " " + myres2.c + " " + res); if (myres2.a != 2) { return(10); } if (myres2.b != 3) { return(11); } if (myres2.c != 5) { return(12); } if (res != 5) { return(13); } RemoteDelegate2 d2 = new RemoteDelegate2(o.nonvirtual_Add); d2(6, 7); if (!(real_proxy.GetTransparentProxy() is R2)) { return(14); } /* Test what happens if the proxy doesn't return the required information */ EmptyProxy handler = new EmptyProxy(typeof(R3)); R3 o3 = (R3)handler.GetTransparentProxy(); if (o3.anObject != null) { return(15); } if (o.null_test_field != null) { return(16); } return(0); }
static int Main() { R1 myobj = new R1 (); int res = 0; long lres; MyProxy real_proxy = new MyProxy (myobj); R1 o = (R1)real_proxy.GetTransparentProxy (); if (RemotingServices.IsTransparentProxy (null)) return 1; if (!RemotingServices.IsTransparentProxy (o)) return 2; Console.WriteLine ("XXXXXXXXXXXX: " + RemotingServices.GetRealProxy (o)); if (o.GetType () != myobj.GetType ()) return 3; MyStruct myres = o.Add (2, out res, 3); Console.WriteLine ("Result: " + myres.a + " " + myres.b + " " + myres.c + " " + res); if (myres.a != 2) return 4; if (myres.b != 3) return 5; if (myres.c != 5) return 6; if (res != 5) return 7; R1 o2 = new R1 (); lres = test_call (o2); lres = test_call (o); Console.WriteLine ("Result: " + lres); if (lres != 5) return 8; lres = test_call (o); o.test_field = 2; Console.WriteLine ("test_field: " + o.test_field); if (o.test_field != 2) return 9; RemoteDelegate1 d1 = new RemoteDelegate1 (o.Add); MyStruct myres2 = d1 (2, out res, 3); Console.WriteLine ("Result: " + myres2.a + " " + myres2.b + " " + myres2.c + " " + res); if (myres2.a != 2) return 10; if (myres2.b != 3) return 11; if (myres2.c != 5) return 12; if (res != 5) return 13; RemoteDelegate2 d2 = new RemoteDelegate2 (o.nonvirtual_Add); d2 (6, 7); if (!(real_proxy.GetTransparentProxy () is R2)) return 14; return 0; }
static int Main() { R1 myobj = new R1(); int res = 0; long lres; MyProxy real_proxy = new MyProxy(myobj); R1 o = (R1)real_proxy.GetTransparentProxy(); if (RemotingServices.IsTransparentProxy(null)) { return(1); } if (!RemotingServices.IsTransparentProxy(o)) { return(2); } Console.WriteLine("XXXXXXXXXXXX: " + RemotingServices.GetRealProxy(o)); if (o.GetType() != myobj.GetType()) { return(3); } MyStruct myres = o.Add(2, out res, 3); Console.WriteLine("Result: " + myres.a + " " + myres.b + " " + myres.c + " " + res); if (myres.a != 2) { return(4); } if (myres.b != 3) { return(5); } if (myres.c != 5) { return(6); } if (res != 5) { return(7); } R1 o2 = new R1(); lres = test_call(o2); lres = test_call(o); Console.WriteLine("Result: " + lres); if (lres != 5) { return(8); } lres = test_call(o); o.test_field = 2; int i = o.test_field; // copy to local variable necessary to avoid CS1690: "Accessing a member on 'member' may cause a runtime exception because it is a field of a marshal-by-reference class" Console.WriteLine("test_field: " + i); if (i != 2) { return(9); } RemoteDelegate1 d1 = new RemoteDelegate1(o.Add); MyStruct myres2 = d1(2, out res, 3); Console.WriteLine("Result: " + myres2.a + " " + myres2.b + " " + myres2.c + " " + res); if (myres2.a != 2) { return(10); } if (myres2.b != 3) { return(11); } if (myres2.c != 5) { return(12); } if (res != 5) { return(13); } RemoteDelegate2 d2 = new RemoteDelegate2(o.nonvirtual_Add); d2(6, 7); if (!(real_proxy.GetTransparentProxy() is R2)) { return(14); } /* Test what happens if the proxy doesn't return the required information */ EmptyProxy handler = new EmptyProxy(typeof(R3)); R3 o3 = (R3)handler.GetTransparentProxy(); if (o3.anObject != null) { return(15); } if (o.null_test_field != null) { return(16); } return(0); }