/// <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); }
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); }
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); }
/// <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; }
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); }