コード例 #1
0
        private object GetLocalService(
            string sAppName,
            string sServiceName,
            string sServiceInstanceName)
        {
            // Validate sAppName
            if (!StringUtil.IsStringInitialized(sAppName))
            {
                ExceptionUtil.RaiseArgumentNullException(
                    "sAppName",
                    "sAppName parameter must be initialized",
                    MethodInfo.GetCurrentMethod());
            }

            // Validate sServiceName
            if (!StringUtil.IsStringInitialized(sServiceName))
            {
                ExceptionUtil.RaiseArgumentNullException(
                    "sServiceName",
                    "sServiceName parameter must be initialized",
                    MethodInfo.GetCurrentMethod());
            }

            // Validate sServiceInstanceName
            if (!StringUtil.IsStringInitialized(sServiceInstanceName))
            {
                ExceptionUtil.RaiseArgumentNullException(
                    "sServiceInstanceName",
                    "sServiceInstanceName parameter must be initialized",
                    MethodInfo.GetCurrentMethod());
            }

            ITisServiceProvider oServiceProvider = null;

            // Get service provider for the application
            oServiceProvider = m_oServiceProvidersCache.GetServiceProvider(sAppName);

            ITisServiceInfo oServiceInfo =
                CheckedGetServiceInfo(sAppName, sServiceName);

            // Create service key
            TisServiceKey oKey = new TisServiceKey(
                sServiceName,
                sServiceInstanceName,
                oServiceInfo);

            object oService = oServiceProvider.GetService(
                oKey);

            return(oService);
        }
コード例 #2
0
        public void ReleaseService(
            string applicationName,
            string serviceName,
            string serviceInstanceName = TisServicesConst.UNNAMED_INSTANCE)
        {
            ITisServiceProvider serviceProvider = m_oServiceProvidersCache.GetServiceProvider(applicationName);

            ITisServiceInfo serviceInfo =
                CheckedGetServiceInfo(applicationName, serviceName);

            TisServiceKey serviceKey = new TisServiceKey(
                serviceName,
                serviceInstanceName);

            serviceProvider.ReleaseService(serviceKey, serviceInfo);
        }
コード例 #3
0
        public TisServiceCache(
            ITisServiceProvider oServicesActivator,
            string sAppName)
        {
            m_sAppName = sAppName;

            // Keep the service provider
            m_oServicesActivator = oServicesActivator;

            // Create services cache
            m_oServicesCache = new MRUCache(
                false                 // DisposeOnRevoke
                );

            // Subscribe to the cache "OnCacheMiss" event
            m_oServicesCache.OnCacheMiss +=
                new CacheMissEvent(ServicesCache_OnCacheMiss);
        }
コード例 #4
0
        //
        //	Private methods
        //

        private object OnCacheMissHandler(object oSender, CacheMissEventArgs oArgs)
        {
            // Obtain application
            string sAppName = (string)oArgs.Key;

            // Use factory to return the new object
            ITisServiceProvider oServiceProvider =
                m_oFactory.CreateServiceProvider(sAppName);

            if (oServiceProvider is ITisServiceLifetimeManager)
            {
                FireOnLifetimeManagerActivate(
                    sAppName,
                    (ITisServiceLifetimeManager)oServiceProvider);
            }

            return(oServiceProvider);
        }
コード例 #5
0
        private void OnCacheRevokeHandler(object oSender, CacheRevokeEventArgs oArgs)
        {
            if (oArgs.EventTiming != CacheRevokeEventArgs.Timing.Post)
            {
                return;
            }

            string sAppName = (string)oArgs.Key;

            ITisServiceProvider oServiceProvider =
                (ITisServiceProvider)oArgs.Value;

            if (oServiceProvider is ITisServiceLifetimeManager)
            {
                FireOnLifetimeManagerDeactivate(
                    sAppName,
                    (ITisServiceLifetimeManager)oServiceProvider);
            }
        }