예제 #1
0
        static void Main( )
        {
            string configfile = "CalcCliente.exe.config";
              RemotingConfiguration.Configure(configfile,false);

              //WellKnownClientTypeEntry[] entries=RemotingConfiguration.GetRegisteredWellKnownClientTypes();
              //Console.WriteLine(entries[0].TypeName+" "+entries[0].ObjectType+" "+entries[0].ObjectUrl);
              //ICalc robj = (ICalc)Activator.GetObject(entries[0].ObjectType,entries[0].ObjectUrl);

            Calc robj = new Calc(); // Caso se partilhasse a classe com implementação
            if (RemotingServices.IsTransparentProxy(robj))
                Console.WriteLine("robj é remoto");
            Console.WriteLine("5+8={0}",robj.add(5,8));
            //ICalc robj2 = (ICalc)Activator.GetObject(typeof(ICalc), entries[0].ObjectUrl);
            //if (RemotingServices.IsTransparentProxy(robj2))
            //    Console.WriteLine("robj2 é remoto");
            //Console.WriteLine("(5+8)*2={0}", robj2.mult(robj.add(5, 8), 2));

            try {
                Console.WriteLine("5/2={0}",robj.div(5,0));
            } catch (DivideByZeroException e){
                Console.WriteLine("Divisão por zero: {0}",e.Message);
            }
            for (int i = 0; i < 100; i++)
            {
                robj.Val = i;
                Console.WriteLine(robj.add(4,7));
                System.Threading.Thread.Sleep(5* 1000);
                Console.WriteLine("Val="+robj.Val);
            }

            Console.ReadLine();
        }
예제 #2
0
        public Form1()
        {
            InitializeComponent();
            AppDomain myDomain = AppDomain.CurrentDomain;
            this.Text = myDomain.FriendlyName;

            mycalc = new Calc();
            mycalc.Evtdbz += new DelDivisionByZero(this.CallBackDivisonByZero);
            withcallback = true;
        }