|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace System
{
/// <summary>
/// Specifies the usage of another attribute class.
/// </summary>
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
public sealed class AttributeUsageAttribute : Attribute
{
private readonly AttributeTargets _attributeTarget;
private bool _allowMultiple;
private bool _inherited;
internal static readonly AttributeUsageAttribute Default = new AttributeUsageAttribute(AttributeTargets.All);
public AttributeUsageAttribute(AttributeTargets validOn)
{
_attributeTarget = validOn;
_inherited = true;
}
internal AttributeUsageAttribute(AttributeTargets validOn, bool allowMultiple, bool inherited)
{
_attributeTarget = validOn;
_allowMultiple = allowMultiple;
_inherited = inherited;
}
public AttributeTargets ValidOn => _attributeTarget;
public bool AllowMultiple
{
get => _allowMultiple;
set => _allowMultiple = value;
}
public bool Inherited
{
get => _inherited;
set => _inherited = value;
}
}
}
|