//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ /* */ namespace System.Web.UI { using System; using System.Diagnostics.CodeAnalysis; /// /// Allows a control to specify a custom object /// for building that control within the ASP.NET parser. /// [AttributeUsage(AttributeTargets.Class)] public sealed class ControlBuilderAttribute : Attribute { /// /// /// The default object is a /// builder. This field is read-only. /// public static readonly ControlBuilderAttribute Default = new ControlBuilderAttribute(null); private Type builderType = null; /// /// public ControlBuilderAttribute(Type builderType) { this.builderType = builderType; } /// /// Indicates XXX. This property is read-only. /// public Type BuilderType { get { return builderType; } } /// /// /// [To be supplied.] /// [SuppressMessage("Microsoft.Usage", "CA2303:FlagTypeGetHashCode", Justification = "The type is a ControlBuilder which is never going to be an interop class.")] public override int GetHashCode() { return ((BuilderType != null) ? BuilderType.GetHashCode() : 0); } /// /// /// public override bool Equals(object obj) { if (obj == this) { return true; } if ((obj != null) && (obj is ControlBuilderAttribute)) { return((ControlBuilderAttribute)obj).BuilderType == builderType; } return false; } /// /// /// public override bool IsDefaultAttribute() { return this.Equals(Default); } } }