//------------------------------------------------------------------------------
//
// 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);
}
}
}