private DOCollection GetPropertyValue() { _rm = (ResourceManage)_p.GetValue(ParameterKey.RESOURCE_MANAGER); _token = (TransactionToken)_p.GetValue(ParameterKey.TOKEN); DOCollection rtn = null; lock (lockobj) { rtn = GetCache(_p.PropertyName); if (rtn == null) { Init(_p); var action = GetSourceDefinition(_p.PropertyName); if (action != null) { CacheSetting setting = new CacheSetting(); rtn = action.Invoke(setting); if (setting.IsCache) { SetCache(_p.PropertyName, rtn, setting.CacheExpiration, setting.CacheSlidingExpiration); } } After(_p); } } return(rtn); }
/// <summary> /// 写入缓存 /// </summary> /// <param name="propertyname"></param> /// <param name="value"></param> /// <param name="expiration"></param> /// <param name="sliding_expiration"></param> public virtual void SetCache(string propertyname, DOCollection value, DateTime expiration, TimeSpan sliding_expiration) { if (expiration != null && expiration != DateTime.MinValue) { GlobalCommon.ApplicationCache.Set(this.GetType().FullName + "." + propertyname + "." + InstanceID, value, expiration); } else if (sliding_expiration != null && sliding_expiration != TimeSpan.Zero) { GlobalCommon.ApplicationCache.Set(this.GetType().FullName + "." + propertyname + "." + InstanceID, value, sliding_expiration); } }
/// <summary> /// 写入缓存 /// </summary> /// <param name="propertyname"></param> /// <param name="value"></param> /// <param name="expiration"></param> /// <param name="sliding_expiration"></param> public virtual void SetCache(string propertyname, DOCollection value, DateTime expiration, TimeSpan sliding_expiration) { HttpRuntime.Cache.Insert(this.GetType().FullName + "." + propertyname + "." + InstanceID, value, null, expiration, sliding_expiration); }