protected virtual ObjectExtensionsDto GenerateCacheValue()
        {
            var objectExtensionsDto = new ObjectExtensionsDto {
                Modules = new Dictionary <string, ModuleExtensionDto> ()
            };

            foreach (var moduleConfig in ObjectExtensionManager.Instance.Modules())
            {
                objectExtensionsDto.Modules[moduleConfig.Key] = CreateModuleExtensionDto(moduleConfig.Value);
            }

            return(objectExtensionsDto);
        }
        public virtual ObjectExtensionsDto Get()
        {
            if (CachedValue == null)
            {
                lock (SyncLock) {
                    if (CachedValue == null)
                    {
                        CachedValue = GenerateCacheValue();
                    }
                }
            }

            return(CachedValue);
        }