Merge branch 'marek'
[mono.git] / mcs / class / System.Web / System.Web.UI / PartialCachingAttribute.cs
index 7f566444ec9728d6ea96022e718e7e12930fded8..c92eaa32ff6c9d7521cfb7b9ad92037ded625a67 100644 (file)
@@ -4,8 +4,7 @@
 // Duncan Mak  (duncan@ximian.com)
 //
 // (C) Ximian, Inc.
-//
-
+// Copyright (C) 2005-2010 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-using System;
+using System.Security.Permissions;
 
 namespace System.Web.UI {
 
+       // CAS - no InheritanceDemand here as the class is sealed
+       [AspNetHostingPermission (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       // attributes
        [AttributeUsage (AttributeTargets.Class)]
        public sealed class PartialCachingAttribute : Attribute
        {
@@ -38,9 +40,8 @@ namespace System.Web.UI {
                string varyByControls;
                string varyByCustom;
                string varyByParams;
-#if NET_1_1
                bool shared;
-#endif
+               string sqlDependency;
                
                public PartialCachingAttribute (int duration)
                {
@@ -56,7 +57,6 @@ namespace System.Web.UI {
                        this.varyByCustom = varyByCustom;
                }
 
-#if NET_1_1
                public PartialCachingAttribute (int duration, string varyByParams, string varyByControls,
                                                string varyByCustom, bool shared)
                {
@@ -66,12 +66,26 @@ namespace System.Web.UI {
                        this.varyByCustom = varyByCustom;
                        this.shared = shared;
                }
-#endif
+
+               public PartialCachingAttribute (int duration, string varyByParams, string varyByControls,
+                                               string varyByCustom, string sqlDependency, bool shared)
+               {
+                       this.duration = duration;
+                       this.varyByParams = varyByParams;
+                       this.varyByControls = varyByControls;
+                       this.varyByCustom = varyByCustom;
+                       this.sqlDependency = sqlDependency;
+                       this.shared = shared;
+               }
 
                public int Duration {
                        get { return duration; }
                }
-
+#if NET_4_0
+               public string ProviderName {
+                       get; set;
+               }
+#endif
                public string VaryByParams {
                        get { return varyByParams; }
                }
@@ -84,10 +98,12 @@ namespace System.Web.UI {
                        get { return varyByCustom; }
                }
 
-#if NET_1_1
                public bool Shared {
                        get { return shared; }
                }
-#endif
+
+               public string SqlDependency {
+                       get { return sqlDependency; }
+               }
        }
 }