コード例 #1
0
        /// <summary>
        /// 取一个远程对象接口
        /// </summary>
        /// <param name="_interfaceName"></param>
        /// <returns></returns>
        public static object GetRemotingInterface(string _interfaceName)
        {
            if (serverObjectLib.ContainsKey(_interfaceName))
            {
                object _icsObject = serverObjectLib[_interfaceName];
                try
                {
                    MarshalByRefObject _mo   = _icsObject as MarshalByRefObject;
                    ILease             lease = (ILease)_mo.GetLifetimeService();
                    if (lease.CurrentState == LeaseState.Active)
                    {
                        return(_icsObject);
                    }
                }
                catch (Exception e)
                {
                    string errmsg = e.Message;
                }
                sponsorLib.Remove(_interfaceName);
                serverObjectLib.Remove(_interfaceName);
            }

            IServiceFactory _serviceFactory = (IServiceFactory)RemotingClientSvc.GetAppSvrObj(typeof(IServiceFactory));

            RemotingClientSvc.BindTicketToCallContext(SessionClass.CurrentTicket);
            MarshalByRefObject _ret = _serviceFactory.GetInterFace(_interfaceName) as MarshalByRefObject;

            ILease clease           = (ILease)_ret.GetLifetimeService();
            SinoSZClientSponsor _sp = new SinoSZClientSponsor();

            clease.Register(_sp);            //为自己注册生存期租约主办方
            sponsorLib.Add(_interfaceName, _sp);
            serverObjectLib.Add(_interfaceName, _ret);
            return(_ret);
        }
コード例 #2
0
        public static IAuthorize GetAuthorizeInterface()
        {
            string className, profilePath;

            string dataBaseType = ConfigurationManager.AppSettings["DataBaseType"] as string;

            switch (dataBaseType)
            {
            case "ORACLE":
                className   = "SinoSZAuthorizeDC.OraAuthorizeFactroy";
                profilePath = "SinoSZAuthorizeDC";
                return((IAuthorize)Assembly.Load(profilePath).CreateInstance(className));


            case "SQLSERVER":
                return(null);

            case "REMOTING":
                IServiceFactory _serviceFactory = (IServiceFactory)RemotingClientSvc.GetAppSvrObj(typeof(IServiceFactory));
                RemotingClientSvc.BindTicketToCallContext(SessionClass.CurrentTicket);
                IAuthorize _ret = _serviceFactory.GetInterFace("AuthorizeServerPlugin") as IAuthorize;
                return(_ret);
            }

            return(null);
        }
コード例 #3
0
ファイル: RefCodeManager.cs プロジェクト: aehyok/InputModel
        private static ICS_RefCode GetDataConfig()
        {
            string className, profilePath;

            string dataBaseType = ConfigurationManager.AppSettings["DataBaseType"] as string;

            switch (dataBaseType)
            {
            case "ORACLE":
                className   = "SinoSZRefTableDC.OraRefTableFactory";
                profilePath = "SinoSZRefTableDC";
                return((ICS_RefCode)Assembly.Load(profilePath).CreateInstance(className));

            case "SQLSERVER":
                className   = "SinoSZRefTableDC.SqlRefTableFactory";
                profilePath = "SinoSZRefTableDC";
                return((ICS_RefCode)Assembly.Load(profilePath).CreateInstance(className));

            case "REMOTING":
                IServiceFactory _serviceFactory = (IServiceFactory)RemotingClientSvc.GetAppSvrObj(typeof(IServiceFactory));
                RemotingClientSvc.BindTicketToCallContext(SessionClass.CurrentTicket);
                ICS_RefCode _ret = _serviceFactory.GetInterFace("RefTableServerPlugin") as ICS_RefCode;
                return(_ret);
            }

            return(null);
        }
コード例 #4
0
        /// <summary>
        /// 通过Remoting 接口创建远程接口对象
        /// </summary>
        virtual protected void CreateObject()
        {
            IServiceFactory _serviceFactory = (IServiceFactory)RemotingClientSvc.GetAppSvrObj(typeof(IServiceFactory));

            RemotingClientSvc.BindTicketToCallContext(SessionClass.CurrentTicket);
            MarshalByRefObject _ret = _serviceFactory.GetInterFace(InterfaceName) as MarshalByRefObject;

            ILease clease = (ILease)_ret.GetLifetimeService();

            sponsor = new SinoSZClientSponsor();
            clease.Register(sponsor);            //为自己注册生存期租约主办方
            remoteObject = _ret;
        }
コード例 #5
0
        public static ISinoMenu GetMenuInterface()
        {
            string className, profilePath;

            string dataBaseType = ConfigurationManager.AppSettings["DataBaseType"] as string;

            switch (dataBaseType)
            {
            case "ORACLE":
                return(null);

            case "SQLSERVER":
                return(null);

            case "REMOTING":
                IServiceFactory _serviceFactory = (IServiceFactory)RemotingClientSvc.GetAppSvrObj(typeof(IServiceFactory));
                RemotingClientSvc.BindTicketToCallContext(SessionClass.CurrentTicket);
                ISinoMenu _ret = _serviceFactory.GetInterFace("MenuServerPlugin") as ISinoMenu;
                return(_ret);
            }

            return(null);
        }