Example #1
0
        public override void OnInvoke(MethodInterceptionArgs args)
        {
            var methodName = string.Format("{0},{1},{2}",
                                           args.Method.ReflectedType.Namespace, args.Method.ReflectedType.Name, args.Method.Name);     //methodname oluşturma :methodnamespca,method class, method name
            var arguments = args.Arguments.ToList();                                                                                   //method parametrelerine ulaşma

            var key = string.Format("{0}({1})", methodName, string.Join(",", arguments.Select(x => x != null?x.ToString():"<Null>"))); //cashe key oluşturma

            if (_casheManager.IsAdd(key))                                                                                              //method cashede varmı ?
            {
                args.ReturnValue = _casheManager.Get <object>(key);                                                                    //varsa devam etme git cashemanagerdan cashi getir key'e göre
            }
            base.OnInvoke(args);
            _casheManager.Add(key, args.ReturnValue, _casheMinute);//cashde yoksa ekle
        }