Exemple #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="changeType"></param>
 /// <param name="propertyName"></param>
 protected void Notify(object sender, CacheItemChangeType changeType, string propertyName)
 {
     //AbstractEntity子类在内存中时才开启事件通知
     if (IsInCache || !(this is AbstractEntity))
     {
         Notify(sender, new CacheItemEventArgs(changeType, propertyName));
     }
 }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="key"></param>
        /// <param name="data"></param>
        /// <param name="updateValueFactory"></param>
        /// <returns></returns>
        public override T AddOrUpdate <T>(string key, T data, Func <string, T, T> updateValueFactory)
        {
            CacheItemChangeType           changeType = CacheItemChangeType.Add;
            Func <string, object, object> func       = (updateKey, updateValue) =>
            {
                changeType = CacheItemChangeType.Modify;
                return(updateValueFactory(updateKey, (T)updateValue));
            };
            T temp = (T)_cacheStruct.AddOrUpdate(key, data, func);

            AddChildrenListener(temp);
            Notify(temp, changeType, PropertyName);
            return(temp);
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="changeType"></param>
 /// <param name="propertyName"></param>
 public CacheItemEventArgs(CacheItemChangeType changeType, string propertyName)
 {
     ChangeType   = changeType;
     PropertyName = propertyName;
 }
Exemple #4
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="changeType"></param>
 /// <param name="propertyName"></param>
 protected void Notify(object sender, CacheItemChangeType changeType, string propertyName)
 {
     Notify(sender, new CacheItemEventArgs(changeType, propertyName));
 }
Exemple #5
0
 /// <summary>
 /// 当前对象(包括继承)的属性触发通知事件,通知到此层为根
 /// </summary>
 /// <param name="changeType"></param>
 /// <param name="propertyName"></param>
 protected override void Notify(CacheItemChangeType changeType, string propertyName)
 {
     _hasChanged = true;
 }
Exemple #6
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="changeType"></param>
 /// <param name="propertyName"></param>
 protected void Notify(object sender, CacheItemChangeType changeType, string propertyName)
 {
     Notify(sender, new CacheItemEventArgs(changeType, propertyName));
 }
Exemple #7
0
 /// <summary>
 /// 当前对象(包括继承)的属性触发通知事件
 /// </summary>
 protected virtual void Notify(CacheItemChangeType changeType, string propertyName)
 {
     if (!_isDisableEvent)
     {
         _hasChanged = true;
         if (ItemEvent != null)
         {
             ItemEvent.Notify(this, new CacheItemEventArgs(changeType, propertyName));
         }
     }
 }