Example #1
0
        public static MethodInfo GetMethodInfo(
            object caller, Type declaringType, string methodName, Type[] parameterTypes)
        {
            if (declaringType == null)
            {
                declaringType = caller.GetType();
            }

            return(CacheAspect.GetMethodInfo(declaringType, methodName, parameterTypes));
        }
Example #2
0
        /// <summary>
        /// Clear a method call cache.
        /// </summary>
        /// <param name="methodInfo">The <see cref="MethodInfo"/> representing cached method.</param>
        public static void ClearCache(MethodInfo methodInfo)
        {
            if (methodInfo == null)
            {
                throw new ArgumentNullException("methodInfo");
            }

            CacheAspect aspect = GetAspect(methodInfo);

            if (aspect != null)
            {
                CleanupThread.ClearCache(aspect.Cache);
            }
        }
Example #3
0
            //public static void UnregisterCache(IDictionary cache)
            //{
            //	lock (RegisteredAspects.SyncRoot)
            //		RegisteredAspects.Remove(cache);
            //}

            public static void ClearCache(CacheAspect aspect)
            {
                lock (RegisteredAspects.SyncRoot)
                {
                    if (!aspect.HasCache)
                    {
                        return;
                    }
                    if (!Monitor.TryEnter(aspect.CacheSyncRoot, 10))
                    {
                        return;
                    }
                    try
                    {
                        _objectsExpired += aspect.Cache.Count;
                        aspect.Cache.Clear();
                    }
                    finally
                    {
                        Monitor.Exit(aspect.CacheSyncRoot);
                    }
                }
            }
Example #4
0
            public static void ClearCache(CacheAspect aspect, CompoundValue key)
            {
                lock (RegisteredAspects.SyncRoot)
                {
                    if (!aspect.HasCache)
                    {
                        return;
                    }

                    if (!Monitor.TryEnter(aspect.CacheSyncRoot, 10))
                    {
                        return;
                    }
                    try
                    {
                        _objectsExpired += 1;
                        aspect.Cache.Remove(key);
                    }
                    finally
                    {
                        Monitor.Exit(aspect.CacheSyncRoot);
                    }
                }
            }
Example #5
0
			public static void ClearCache(CacheAspect aspect, CompoundValue key)
			{
				lock (RegisteredAspects.SyncRoot)
				{
					if (!aspect.HasCache)
						return;

					if (!Monitor.TryEnter(aspect.CacheSyncRoot, 10))
						return;
					try
					{
						_objectsExpired += 1;
						aspect.Cache.Remove(key);
					}
					finally
					{
						Monitor.Exit(aspect.CacheSyncRoot);
					}
				}
			}
Example #6
0
			//public static void UnregisterCache(IDictionary cache)
			//{
			//	lock (RegisteredAspects.SyncRoot)
			//		RegisteredAspects.Remove(cache);
			//}

			public static void ClearCache(CacheAspect aspect)
			{
				lock (RegisteredAspects.SyncRoot) 
				{
					if (!aspect.HasCache)
						return;

					if (!Monitor.TryEnter(aspect.CacheSyncRoot, 10))
						return;
					try
					{
						_objectsExpired += aspect.Cache.Count;
						aspect.Cache.Clear();
					}
					finally
					{
						Monitor.Exit(aspect.CacheSyncRoot);
					}
				}
			}