readonly string cacheKeyDependency;
readonly string controlID;
readonly DataSourceCacheExpiry cacheExpirationPolicy;
+ readonly Control owner;
+ readonly HttpContext context;
internal DataSourceCacheManager (int cacheDuration, string cacheKeyDependency,
- DataSourceCacheExpiry cacheExpirationPolicy, string controlID)
+ DataSourceCacheExpiry cacheExpirationPolicy, Control owner, HttpContext context)
{
this.cacheDuration = cacheDuration;
this.cacheKeyDependency = cacheKeyDependency;
this.cacheExpirationPolicy = cacheExpirationPolicy;
- this.controlID = controlID;
+ this.controlID = owner.UniqueID;
+ this.owner = owner;
+ this.context = context;
if (DataCache [controlID] == null)
DataCache [controlID] = new object ();
if (cacheExpirationPolicy == DataSourceCacheExpiry.Absolute)
absoluteExpiration = DateTime.Now.AddSeconds (cacheDuration);
else
- slidindExpiraion = new TimeSpan (cacheDuration * 10000);
+ slidindExpiraion = new TimeSpan (0, 0, cacheDuration);
}
string [] dependencies;
if (cacheKeyDependency.Length > 0)
- dependencies = new string [] { cacheKeyDependency, controlID };
+ dependencies = new string [] { cacheKeyDependency };
else
- dependencies = new string [] { controlID };
+ dependencies = new string [] { };
DataCache.Add (key, o,
new CacheDependency (new string [] { }, dependencies),
static Cache DataCache
{
- get
- {
+ get {
if (HttpContext.Current != null)
- return HttpContext.Current.Cache;
+ return HttpContext.Current.InternalCache;
throw new InvalidOperationException ("HttpContext.Current is null.");
}
}
- static string GetKeyFromParameters (string methodName, ParameterCollection parameters)
+ string GetKeyFromParameters (string methodName, ParameterCollection parameters)
{
StringBuilder sb = new StringBuilder (methodName);
+ if (owner != null)
+ sb.Append (owner.ID);
+
for (int i = 0; i < parameters.Count; i++) {
sb.Append (parameters [i].Name);
- sb.Append (parameters [i].DefaultValue);
+ sb.Append (parameters [i].GetValue (context, owner));
}
return sb.ToString ();
}
}
-#endif
\ No newline at end of file
+#endif