59 lines
1.9 KiB
C#
59 lines
1.9 KiB
C#
// ==++==
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// ==--==
|
|
/*============================================================
|
|
**
|
|
** Class: AttributeUsageAttribute
|
|
**
|
|
**
|
|
** Purpose: The class denotes how to specify the usage of an attribute
|
|
**
|
|
** Date: December 7, 1999
|
|
**
|
|
===========================================================*/
|
|
namespace System {
|
|
|
|
using System.Reflection;
|
|
/* By default, attributes are inherited and multiple attributes are not allowed */
|
|
//| <include path='docs/doc[@for="AttributeUsageAttribute"]/*' />
|
|
[AttributeUsage(AttributeTargets.Class, Inherited = true)]
|
|
public sealed class AttributeUsageAttribute : Attribute
|
|
{
|
|
internal AttributeTargets m_attributeTarget = AttributeTargets.All; // Defaults to all
|
|
internal bool m_allowMultiple = false; // Defaults to false
|
|
internal bool m_inherited = true; // Defaults to true
|
|
|
|
internal static AttributeUsageAttribute Default = new AttributeUsageAttribute(AttributeTargets.All);
|
|
|
|
//Constructors
|
|
//| <include path='docs/doc[@for="AttributeUsageAttribute.AttributeUsageAttribute"]/*' />
|
|
public AttributeUsageAttribute(AttributeTargets validOn) {
|
|
m_attributeTarget = validOn;
|
|
}
|
|
|
|
|
|
//Properties
|
|
//| <include path='docs/doc[@for="AttributeUsageAttribute.ValidOn"]/*' />
|
|
public AttributeTargets ValidOn
|
|
{
|
|
get{ return m_attributeTarget; }
|
|
}
|
|
|
|
//| <include path='docs/doc[@for="AttributeUsageAttribute.AllowMultiple"]/*' />
|
|
public bool AllowMultiple
|
|
{
|
|
get { return m_allowMultiple; }
|
|
set { m_allowMultiple = value; }
|
|
}
|
|
|
|
//| <include path='docs/doc[@for="AttributeUsageAttribute.Inherited"]/*' />
|
|
public bool Inherited
|
|
{
|
|
get { return m_inherited; }
|
|
set { m_inherited = value; }
|
|
}
|
|
}
|
|
}
|