Exemple #1
0
        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);
    }
Exemple #5
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;
	}
Exemple #6
0
	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;
	}
Exemple #7
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);
    }
Exemple #10
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);
    }
Exemple #14
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());
    }
Exemple #16
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;
	}
Exemple #17
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;
    }