|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Diagnostics.CodeAnalysis;
namespace System.ComponentModel
{
/// <summary>
/// If this attribute is placed on a property or a type, its text representation in a property window
/// will appear as dots or asterisks to indicate a password field. This indication in no way
/// represents any type of encryption or security.
/// </summary>
[AttributeUsage(AttributeTargets.All)]
public sealed class PasswordPropertyTextAttribute : Attribute
{
/// <summary>
/// Sets the System.ComponentModel.Design.PasswordPropertyText
/// attribute by default to true.
/// </summary>
public static readonly PasswordPropertyTextAttribute Yes = new PasswordPropertyTextAttribute(true);
/// <summary>
/// Sets the System.ComponentModel.Design.PasswordPropertyText
/// attribute by default to false.
/// </summary>
public static readonly PasswordPropertyTextAttribute No = new PasswordPropertyTextAttribute(false);
/// <summary>
/// Sets the System.ComponentModel.Design.PasswordPropertyText
/// attribute by default to false.
/// </summary>
public static readonly PasswordPropertyTextAttribute Default = No;
/// <summary>
/// Creates a default PasswordPropertyTextAttribute.
/// </summary>
public PasswordPropertyTextAttribute() : this(false)
{
}
/// <summary>
/// Creates a PasswordPropertyTextAttribute with the given password value.
/// </summary>
public PasswordPropertyTextAttribute(bool password)
{
Password = password;
}
/// <summary>
/// Gets a value indicating if the property this attribute is defined for should be shown as password text.
/// </summary>
public bool Password { get; }
/// <summary>
/// Overload for object equality
/// </summary>
public override bool Equals([NotNullWhen(true)] object? o)
{
if (o is PasswordPropertyTextAttribute)
{
return ((PasswordPropertyTextAttribute)o).Password == Password;
}
return false;
}
/// <summary>
/// Returns the hashcode for this object.
/// </summary>
public override int GetHashCode() => base.GetHashCode();
/// <summary>
/// Gets a value indicating whether this attribute is set to true by default.
/// </summary>
public override bool IsDefaultAttribute() => Equals(Default);
}
}
|