据我了解Remoting远程调用的对象都是由客户端的两种激活方式来生成远程对象的。
我想由Remoting Server来主动生成和销毁远程对象,再由客户端调用,不知道可不可以?

解决方案 »

  1.   

    以下代码中的MBV和MBR可以当作你驻留在Windows Serivce中由它控制的类,你可以暴露给程序域以外的程序。
    using System;
    using System.Collections.Generic;
    using System.Text;namespace RemoteObject
    {
        public class MyObject:MarshalByRefObject
        {
            private int i = 0;
            private MBV _mbv;
            private MBR _mbr;
            public MyObject()
            {
                Console.WriteLine("激活");
            }        public MyObject(int k)
            {
                this.i = k;
                Console.WriteLine("激活");
            }        public int Add(int a, int b)
            {
                return a + b;
            }        public int Count()
            {
                return ++i;
            }        public MBV GetMBV()
            {
                return new MBV(100);
            }        public MBR GetMBR()
            {
                return new MBR(200);
            }        public void SetMBV(MBV mbv)
            {
                _mbv = mbv;
            }        public int UseMBV()
            {
                return _mbv.Data;
            }        public void SetMBR(MBR mbr)
            {
                _mbr = mbr;
            }        public int UseMBR()
            {
                return _mbr.Data;
            }
        }    [Serializable]
        public class MBV
        {
            private int _data;
            public MBV(int data)
            {
                _data = data;
            }
            public int Data
            {
                get 
                {
                    return _data;
                }
                set
                {
                    _data = value;
                }
            }
        }
        public class MBR : MarshalByRefObject
        {
            private int _data;
            public MBR(int data)
            {
                _data = data;
            }
            public int Data 
            {
                get
                {
                    return _data;
                }
                set
                {
                    _data = value;
                }
            }
        }
    }
      

  2.   

    正因为这种想法太多,所以remoting才没落的。现在基本上都使用完全无状态、每一个交互都可以重新路由到不同主机服务器的的轻量级通讯方式来架构新的c/s。