コード例 #1
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);
    }
コード例 #2
0
ファイル: remoting1.cs プロジェクト: Zman0169/mono
	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;
	}
コード例 #3
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;
 }
コード例 #4
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;
    }
コード例 #5
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);
    }
コード例 #6
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);
    }