public void ReleaseService( TisServiceKey oServiceKey, ITisServiceInfo serviceInfo = null, object oService = null) { if (oService == null && IsInstantiated(oServiceKey)) { oService = GetService(oServiceKey); } if (oService != null) { if (serviceInfo != null) { TisServiceEventsAdapterBuilder.ReleaseService(serviceInfo, oService); } PerformReleaseService(oServiceKey); PerformDisposeService(oService); } // Fire post-deactivate event FirePostServiceDeactivate(oServiceKey); int nIndex; nIndex = m_oServicesLoadOrder.IndexOf(oServiceKey); if (nIndex >= 0) { m_oServicesLoadOrder.RemoveAt(nIndex); } }
private void LifetimeManager_OnPostServiceActivate( string sAppName, TisServiceKey oServiceKey, object oService) { ITisServiceInfo serviceInfo = oServiceKey.ServiceInfo; if (serviceInfo.SupportedEvents.Count > 0) { TisServiceEventsAdapterBuilder.AddService( this, sAppName, oService, serviceInfo, oServiceKey.InstanceName); } if (OnPostServiceActivate != null) { OnPostServiceActivate(sAppName, oServiceKey); } }
public bool AddLocalService( string applicationName, string serviceName, object serviceInstance = null, string serviceCreatorFullName = null, string serviceTypeFullName = null, string serviceInstanceName = null) { if (!StringUtil.IsStringInitialized(serviceName)) { Log.WriteWarning("Try to install service without name."); return(false); } ITisServiceRegistry applicationServiceRegistry = GetServiceRegistry(applicationName); bool isServiceInstalled = applicationServiceRegistry.IsServiceInstalled(serviceName); if (!isServiceInstalled) { if (!StringUtil.IsStringInitialized(serviceCreatorFullName)) { serviceCreatorFullName = typeof(TisUniversalServiceCreator).FullName + "," + typeof(TisUniversalServiceCreator).Assembly.GetName().Name; } if (!StringUtil.IsStringInitialized(serviceTypeFullName)) { serviceTypeFullName = String.Empty; } try { applicationServiceRegistry.InstallService( serviceName, serviceCreatorFullName, serviceTypeFullName, TisServicesConst.NO_ROLES_REQUIRED, false); } catch (Exception exc) { Log.WriteWarning("Failed to install service [{0}]. Details : {1}", serviceName, exc.Message); } isServiceInstalled = applicationServiceRegistry.IsServiceInstalled(serviceName); } if (serviceInstance != null) { if (!StringUtil.IsStringInitialized(serviceInstanceName)) { serviceInstanceName = TisServicesConst.UNNAMED_INSTANCE; } TisServiceKey serviceKey = new TisServiceKey( serviceName, serviceInstanceName); ITisServiceProvider serviceProvider; serviceProvider = m_oServiceProvidersCache.GetServiceProvider(applicationName); serviceProvider.AddService(serviceKey, serviceInstance); ITisServiceInfo serviceInfo = CheckedGetServiceInfo(applicationName, serviceName); // The events adapter will include only the services which implement ITisSupportEvents interface. TisServiceEventsAdapterBuilder.AddService( this, applicationName, serviceInstance, serviceInfo, serviceInstanceName); } return(isServiceInstalled); }