/// <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); } }
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); } } }