public object GetService(Type serviceType)
        {
            if (_provider == null)
            {
                lock (_object)
                    if (_provider == null)
                    {
                        _provider = new ImageServerServiceProvider();
                    }
            }

            return(_provider.GetService(serviceType));
        }
        public object GetService(Type serviceType)
        {
            // Note: The object is cached for performance purpose.
            // For servicibility, cache is invalidated periodically so that changing the settings (EnterpriseImageServerServiceSettings)
            // will not require restarting all services/IIS in the farm.
            lock (_cache)
            {
                const string cacheId  = "Settings";
                var          provider = _cache.Get(cacheId, new CacheGetOptions("Default")) as ImageServerServiceProvider;
                if (provider == null)
                {
                    provider = new ImageServerServiceProvider();
                    _cache.Put(cacheId, provider, new CachePutOptions("Default", _cacheDuration, false));
                }

                return(provider.GetService(serviceType));
            }
        }