public void ExecuteMessage() { var port = NetworkHelpers.FindFreePort(); TcpChannel chn = new TcpChannel(port); ChannelServices.RegisterChannel(chn); try { MarshalObject objMarshal = NewMarshalObject(); RemotingConfiguration.RegisterWellKnownServiceType(typeof(MarshalObject), objMarshal.Uri, WellKnownObjectMode.SingleCall); // use a proxy to catch the Message MyProxy proxy = new MyProxy(typeof(MarshalObject), (MarshalObject)Activator.GetObject(typeof(MarshalObject), $"tcp://localhost:{port}/" + objMarshal.Uri)); MarshalObject objRem = (MarshalObject)proxy.GetTransparentProxy(); objRem.Method1(); // Tests RemotingServices.GetMethodBaseFromMethodMessage() Assert.AreEqual("Method1", proxy.MthBase.Name, "#A09"); Assert.IsFalse(proxy.IsMethodOverloaded, "#A09.1"); objRem.Method2(); Assert.IsTrue(proxy.IsMethodOverloaded, "#A09.2"); // Tests RemotingServices.ExecuteMessage(); // If ExecuteMessage does it job well, Method1 should be called 2 times Assert.AreEqual(2, MarshalObject.Called, "#A10"); } finally { ChannelServices.UnregisterChannel(chn); } }
public void ExecuteMessage() { TcpChannel chn = new TcpChannel(1235); ChannelServices.RegisterChannel(chn); try { MarshalObject objMarshal = NewMarshalObject(); RemotingConfiguration.RegisterWellKnownServiceType(typeof(MarshalObject), objMarshal.Uri, WellKnownObjectMode.SingleCall); // use a proxy to catch the Message MyProxy proxy = new MyProxy(typeof(MarshalObject), (MarshalObject)Activator.GetObject(typeof(MarshalObject), "tcp://localhost:1235/" + objMarshal.Uri)); MarshalObject objRem = (MarshalObject)proxy.GetTransparentProxy(); objRem.Method1(); // Tests RemotingServices.GetMethodBaseFromMethodMessage() AssertEquals("#A09", "Method1", proxy.MthBase.Name); Assert("#A09.1", !proxy.IsMethodOverloaded); objRem.Method2(); Assert("#A09.2", proxy.IsMethodOverloaded); // Tests RemotingServices.ExecuteMessage(); // If ExecuteMessage does it job well, Method1 should be called 2 times AssertEquals("#A10", 2, MarshalObject.Called); } finally { ChannelServices.UnregisterChannel(chn); } }
public void GetRealProxy() { TcpChannel chn = null; try { chn = new TcpChannel(1241); ChannelServices.RegisterChannel(chn); RemotingConfiguration.RegisterWellKnownServiceType(typeof(MarshalObject), "MonoTests.System.Runtime.Remoting.RemotingServicesTest.MarshalObject.soap", WellKnownObjectMode.Singleton); MyProxy proxy = new MyProxy(typeof(MarshalObject), (MarshalByRefObject)Activator.GetObject(typeof(MarshalObject), "tcp://localhost:1241/MonoTests.System.Runtime.Remoting.RemotingServicesTest.MarshalObject.soap")); MarshalObject objRem = (MarshalObject)proxy.GetTransparentProxy(); RealProxy rp = RemotingServices.GetRealProxy(objRem); Assert.IsTrue(rp != null, "#A12"); Assert.AreEqual("MonoTests.System.Runtime.Remoting.RemotingServicesInternal.MyProxy", rp.GetType().ToString(), "#A13"); } finally { if (chn != null) { ChannelServices.UnregisterChannel(chn); } } }
public static void Main() { MyProxy proxy = new MyProxy(typeof(Zip)); Zip myZip = (Zip)proxy.GetTransparentProxy(); CallContext.SetData("USER", new Zip()); myZip.Method1(6); }
static int Main () { MyProxy real_proxy = new MyProxy (new R1 ()); R1 o = (R1)real_proxy.GetTransparentProxy (); Dictionary<string, int> i; o.foo (out i); if (1 == i["One"]) return 0; return 1; }
public virtual int ldfield_test () { MyProxy real_proxy = new MyProxy (this); R1 o = (R1)real_proxy.GetTransparentProxy (); if (o.test_field != 1) return 1; if (test_field != 1) return 1; return 0; }
static int Main() { MyProxy real_proxy = new MyProxy(new R1()); R1 o = (R1)real_proxy.GetTransparentProxy(); Dictionary <string, int> i; o.foo(out i); if (1 == i["One"]) { return(0); } return(1); }
public override MarshalByRefObject CreateInstance(Type serverType) { if (serverType.IsMarshalByRef) { MarshalByRefObject targetObject = (MarshalByRefObject)Activator.CreateInstance(serverType); MyProxy proxy = new MyProxy(serverType, targetObject); return((MarshalByRefObject)proxy.GetTransparentProxy()); } else { throw new Exception("Proxies only work on MarshalByRefObject objects" + " and their children"); } }
public virtual int ldfield_test() { MyProxy real_proxy = new MyProxy(this); R1 o = (R1)real_proxy.GetTransparentProxy(); if (o.test_field != 1) { return(1); } if (test_field != 1) { return(1); } return(0); }
public void GetRealProxy() { var port = NetworkHelpers.FindFreePort(); TcpChannel chn = new TcpChannel(port); ChannelServices.RegisterChannel(chn); try { RemotingConfiguration.RegisterWellKnownServiceType(typeof(MarshalObject), "MonoTests.System.Runtime.Remoting.RemotingServicesTest.MarshalObject.soap", WellKnownObjectMode.Singleton); MyProxy proxy = new MyProxy(typeof(MarshalObject), (MarshalByRefObject)Activator.GetObject(typeof(MarshalObject), $"tcp://localhost:{port}/MonoTests.System.Runtime.Remoting.RemotingServicesTest.MarshalObject.soap")); MarshalObject objRem = (MarshalObject)proxy.GetTransparentProxy(); RealProxy rp = RemotingServices.GetRealProxy(objRem); Assert.IsNotNull(rp, "#A12"); Assert.AreEqual("MonoTests.System.Runtime.Remoting.RemotingServicesInternal.MyProxy", rp.GetType().ToString(), "#A13"); } finally { ChannelServices.UnregisterChannel(chn); } }
public static void Main() { try { TcpChannel myTcpChannel = new TcpChannel(8086); ChannelServices.RegisterChannel(myTcpChannel); MyProxy myProxyObject = new MyProxy(typeof(PrintServer)); PrintServer myPrintServer = (PrintServer)myProxyObject.GetTransparentProxy(); if (myPrintServer == null) { Console.WriteLine("Could not locate server"); } else { Console.WriteLine(myPrintServer.MyPrintMethod("String1", 1.2, 6)); } Console.WriteLine("Calling the Proxy"); int kValue = myPrintServer.MyPrintMethod("String1", 1.2, 6); Console.WriteLine("Checking result"); if (kValue == 6) { Console.WriteLine("PrintServer.MyPrintMethod PASSED : returned {0}", kValue); } else { Console.WriteLine("PrintServer.MyPrintMethod FAILED : returned {0}", kValue); } Console.WriteLine("Sample Done"); } catch (Exception e) { Console.WriteLine("Exception caught!!!"); Console.WriteLine("The source of exception: " + e.Source); Console.WriteLine("The Message of exception: " + e.Message); } }
static int Main() { R1 myobj = new R1(); int res = 0; MyProxy real_proxy = new MyProxy(myobj); R1 o = (R1)real_proxy.GetTransparentProxy(); RemoteDelegate1 d1 = new RemoteDelegate1(o.Add); IAsyncResult ar = d1.BeginInvoke(2, out res, 3, null, null); MyStruct myres = d1.EndInvoke(out res, ar); Console.WriteLine("Result: " + myres.a + " " + myres.b + " " + myres.c + " " + res); if (myres.a != 2) { return(1); } if (myres.b != 3) { return(2); } if (myres.c != 5) { return(3); } if (res != 5) { return(4); } return(0); }
static int Main() { R1 myobj = new R1(); long lres; MyProxy real_proxy = new MyProxy(myobj); R1 o = (R1)real_proxy.GetTransparentProxy(); RemoteDelegate2 d2 = new RemoteDelegate2(o.nonvirtual_Add); d2(6, 7); IAsyncResult ar1 = d2.BeginInvoke(2, 4, null, null); lres = d2.EndInvoke(ar1); if (lres != 6) { return(1); } 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); }
public static IMySpecial Marshal(object instance) { MyProxy myProxy = new MyProxy(instance); return(myProxy.GetTransparentProxy()); }
static int Main () { R1 myobj = new R1 (); long lres; MyProxy real_proxy = new MyProxy (myobj); R1 o = (R1)real_proxy.GetTransparentProxy (); RemoteDelegate2 d2 = new RemoteDelegate2 (o.nonvirtual_Add); d2 (6, 7); IAsyncResult ar1 = d2.BeginInvoke (2, 4, null, null); lres = d2.EndInvoke (ar1); if (lres != 6) return 1; 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; MyProxy real_proxy = new MyProxy (myobj); R1 o = (R1)real_proxy.GetTransparentProxy (); RemoteDelegate1 d1 = new RemoteDelegate1 (o.Add); IAsyncResult ar = d1.BeginInvoke (2, out res, 3, null, null); MyStruct myres = d1.EndInvoke (out res, ar); Console.WriteLine ("Result: " + myres.a + " " + myres.b + " " + myres.c + " " + res); if (myres.a != 2) return 1; if (myres.b != 3) return 2; if (myres.c != 5) return 3; if (res != 5) return 4; 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; }