/// <summary>
        /// 添加多个对象
        /// </summary>
        /// <param name="data"></param>
        public override void AddObjects(IDictionary <string, object> data)
        {
            lock (lockObject)
            {
                IDictionary <string, byte[]> cacheData = new Dictionary <string, byte[]>();
                foreach (KeyValuePair <string, object> kv in data)
                {
                    if (kv.Value != null)
                    {
                        cacheData.Add(GetInputKey(kv.Key), Serialization.BinarySerialize(kv.Value));
                    }
                }

                dataCache.MultiAdd(cacheData);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 여러 개의 항목을 캐시에 추가합니다.
        /// </summary>
        /// <param name="sharedCache"></param>
        /// <param name="items"></param>
        /// <returns></returns>
        public static bool TryMultiAdd(this IndexusProviderBase sharedCache, IEnumerable <KeyValuePair <string, byte[]> > items)
        {
            if (items.IsEmptySequence())
            {
                return(false);
            }

            try {
                if (IsDebugEnabled)
                {
                    log.Debug("캐시 시스템에 다중 정보를 저장합니다... items key=[{0}]", items.Select(item => item.Key).CollectionToString());
                }

                sharedCache.MultiAdd(items.ToDictionary(item => item.Key, item => item.Value));

                if (IsDebugEnabled)
                {
                    log.Debug("캐시 시스템에 다중 정보를 저장했습니다!!!");
                }

                return(true);
            }
            catch (Exception ex) {
                if (log.IsWarnEnabled)
                {
                    log.Warn("캐시에 여러 값을 저장하는데 실패했습니다. 예외는 무시합니다^^");
                    log.Warn(ex);
                }
            }
            return(false);
        }