コード例 #1
0
ファイル: MemoryCache.cs プロジェクト: zhangzheng1205/Smart
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public IEnumerable <string> GetAllKeys()
        {
            var mget       = _cache.GetType().GetMethod("GetEnumerator", BindingFlags.Instance | BindingFlags.NonPublic);
            var enumerator = (IEnumerator <KeyValuePair <string, object> >)mget.Invoke(_cache, null);

            while (enumerator.MoveNext())
            {
                yield return(enumerator.Current.Key);
            }
        }
コード例 #2
0
ファイル: MemoryCache.cs プロジェクト: AsWinds/Smart
        public void RemoveAll(Predicate <string> match)
        {
            var mget       = _cache.GetType().GetMethod("GetEnumerator", BindingFlags.Instance | BindingFlags.NonPublic);
            var enumerator = (IEnumerator <KeyValuePair <string, object> >)mget.Invoke(_cache, null);

            while (enumerator.MoveNext())
            {
                if (match != null && match(enumerator.Current.Key))
                {
                    _cache.Remove(enumerator.Current.Key);
                }
            }
        }