+ }
+#if NET_4_0
+ OutputCacheProvider GetProvider ()
+ {
+ string providerName = ProviderName;
+ OutputCacheProvider provider;
+
+ if (String.IsNullOrEmpty (providerName))
+ provider = OutputCache.DefaultProvider;
+ else {
+ provider = OutputCache.GetProvider (providerName);
+ if (provider == null)
+ provider = OutputCache.DefaultProvider;
+ }
+
+ return provider;
+ }
+
+ void OnDependencyChanged (string key, object value, CacheItemRemovedReason reason)
+ {
+ Console.WriteLine ("{0}.OnDependencyChanged (\"{0}\", {1}, {2})", this, key, value, reason);
+ GetProvider ().Remove (key);
+ }
+
+ internal override void InitRecursive (Control namingContainer)
+ {
+ RetrieveCachedContents ();
+ if (cachedData == null) {
+ control = CreateControl ();
+ Controls.Add (control);
+ } else
+ control = null;
+
+ base.InitRecursive (namingContainer);
+ }
+#else
+ protected internal override void OnInit (EventArgs e)