2010-05-14 Marek Habersack <mhabersack@novell.com>
[mono.git] / mcs / class / System.Web / System.Web.UI / DataBindingHandlerAttribute.cs
index f535516bd24273bd1a4d52799431369230c68f1d..d5ff98455d0e97190fa42d6aa68cd47eb70f751b 100644 (file)
@@ -1,5 +1,5 @@
 //
-// System.Web.UI.WebControls.CommandEventArgs.cs
+// System.Web.UI.WebControls.DataBindingHandlerAttribute class
 //
 // Author: Duncan Mak (duncan@novell.com)
 //
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+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 DataBindingHandlerAttribute : Attribute
        {
@@ -44,7 +49,7 @@ namespace System.Web.UI {
 
                public DataBindingHandlerAttribute (string name)
                {
-                       this.name = name;
+                       this.name = (name != null) ? name : String.Empty;
                }
 
                public DataBindingHandlerAttribute (Type type)
@@ -54,6 +59,21 @@ namespace System.Web.UI {
 
                public static readonly DataBindingHandlerAttribute Default;
 
+               public override bool Equals (object obj) 
+               {
+                       DataBindingHandlerAttribute other = obj as DataBindingHandlerAttribute;
+                       if (other == null) {
+                               return false;
+                       }
+
+                       return HandlerTypeName.Equals (other.HandlerTypeName);
+               }
+
+               public override int GetHashCode () 
+               {
+                       return HandlerTypeName.GetHashCode ();
+               }
+
                public string HandlerTypeName {
                        get { return name; }
                }