AttributeProviderAttribute Class

Definition

특성 리디렉션을 활성화합니다.Enables attribute redirection. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class AttributeProviderAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public class AttributeProviderAttribute : Attribute
public class AttributeProviderAttribute : Attribute
type AttributeProviderAttribute = class
    inherit Attribute
Public Class AttributeProviderAttribute
Inherits Attribute
Inheritance
AttributeProviderAttribute
Attributes

Examples

다음 코드 예제에서는 AttributeProviderAttribute를 사용 하 여 DataSource 속성을 IListSource의 특정 형식으로 표시 하는 방법을 보여 줍니다.The following code example demonstrates using AttributeProviderAttribute to mark a DataSource property with a specific type of IListSource. 전체 코드 목록은 참조 하세요 방법: Windows Forms 컨트롤에서 특성 적용합니다.For a full code listing, see How to: Apply Attributes in Windows Forms Controls.

[Category("Data")]
[Description("Indicates the source of data for the control.")]
[RefreshProperties(RefreshProperties.Repaint)]
[AttributeProvider(typeof(IListSource))]
public object DataSource
{
    get
    {
        return this.dataGridView1.DataSource;
    }

    set
    {
        this.dataGridView1.DataSource = value;
    }
}
<Category("Data"), _
Description("Indicates the source of data for the control."), _
RefreshProperties(RefreshProperties.Repaint), _
AttributeProvider(GetType(IListSource))> _
Public Property DataSource() As Object
    Get
        Return Me.dataGridView1.DataSource
    End Get

    Set(ByVal value As Object)
        Me.dataGridView1.DataSource = value
    End Set
End Property

Remarks

여기서 속성은 의도적으로 하 게 형식화 된 막연 한.NET Framework 개체 모델의 몇 가지 경우가 있습니다.There are a few cases in the .NET Framework object model where a property is purposely typed to be vague. 예를 들어 DataGridView.DataSource 속성은 object으로 형식화 됩니다.For example, the DataGridView.DataSource property is typed as object. 이러한 이유로이 속성에 여러 유형의 입력을 사용할 수 있는 경우The reason for this is that this property can accept several types of input. 그러나이 속성의 특징을 설명 하는 메타 데이터를 추가 하려면 일반적인 장소가 없는지를 제공 합니다.Unfortunately, this provides no common place to add metadata to describe the characteristics of the property. .NET Framework의 각 DataSource 속성에는 형식 변환기, UI 형식 편집기 및 메타 데이터가 필요한 기타 서비스에 대해 동일한 메타 데이터가 있어야 합니다.Each DataSource property throughout the .NET Framework needs to have identical metadata for type converters, UI type editors, and other services that require metadata. AttributeProviderAttribute이 상황을 해결 합니다.The AttributeProviderAttribute remedies this situation.

이 특성이 속성에 배치 되 면 속성 설명자의 MemberDescriptor.Attributes 컬렉션에 대 한 특성을 가져오는 규칙이 서로 다릅니다.Once this attribute is placed on a property, the rules for obtaining attributes for the property descriptor's MemberDescriptor.Attributes collection differ. 일반적으로 속성 설명자는 로컬 속성을 수집 하 고 속성 형식이 특성을 사용 하 여 이러한를 병합 합니다.Typically, the property descriptor gathers local attributes, and then merges these with attributes from the property type. 이 경우 특성은 실제 속성 형식이 아닌 AttributeProviderAttribute에서 반환 된 형식에서 가져옵니다.In this case, the attributes are taken from the type returned from the AttributeProviderAttribute, not from the actual property type. 이 특성은 DataGridView.DataSource 개체의 특정 형식을 IListSource하는 DataGridView.DataSource에 사용 되며, 적절 한 메타 데이터를 IListSource에 배치 하 여 데이터 바인딩을 사용 하도록 설정 합니다.This attribute is used on DataGridView.DataSource to point the DataGridView.DataSource object's specific type to IListSource, and the appropriate metadata is placed on IListSource to enable data binding. 외부 당사자는 과정에서 모든 데이터 원본에 메타 데이터를 쉽게 추가할 수 있습니다.In so doing, external parties can easily add metadata to all data sources.

AttributeProviderAttribute에 선언 된 형식에서 가져온 특성은 속성 형식의 특성과 속성의 특성 사이에 우선 순위가 있습니다.Attributes obtained from a type declared in the AttributeProviderAttribute have a priority in between the attributes of the property's type and the attributes on the property. 다음은 우선 순위에 따라 병합 된 사용 가능한 특성의 전체 집합 표시:The following list, in priority order, shows the full set of available merged attributes:

  • 속성 특성Property Attributes

  • 특성 공급자 특성Attribute Provider Attributes

  • 속성 형식 특성Property Type Attributes

Constructors

AttributeProviderAttribute(String)

지정된 형식 이름을 사용하여 AttributeProviderAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AttributeProviderAttribute class with the given type name.

AttributeProviderAttribute(String, String)

지정된 형식 이름과 속성 이름을 사용하여 AttributeProviderAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AttributeProviderAttribute class with the given type name and property name.

AttributeProviderAttribute(Type)

지정된 형식을 사용하여 AttributeProviderAttribute 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the AttributeProviderAttribute class with the given type.

Properties

PropertyName

특성을 검색할 속성의 이름을 가져옵니다.Gets the name of the property for which attributes will be retrieved.

TypeId

파생 클래스에서 구현될 때 이 Attribute의 고유 식별자를 가져옵니다.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)
TypeName

정규화 된 형식 이름을 생성자에 전달 하는 어셈블리를 가져옵니다.Gets the assembly qualified type name passed into the constructor.

Methods

Equals(Object)

이 인스턴스가 지정된 개체와 같은지를 나타내는 값을 반환합니다.Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)
GetHashCode()

이 인스턴스에 대한 해시 코드를 반환합니다.Returns the hash code for this instance.

(Inherited from Attribute)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute()

파생 클래스에서 재정의된 경우 이 인스턴스 값이 파생 클래스에 대한 기본값인지 여부를 표시합니다.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)
Match(Object)

파생된 클래스에서 재정의할 경우,이 인스턴스가 지정된 된 개체와 같은지 여부를 나타내는 값을 반환 합니다.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(Inherited from Object)

Explicit Interface Implementations

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

이름 집합을 해당하는 디스패치 식별자 집합에 매핑합니다.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

인터페이스의 형식 정보를 가져오는 데 사용할 수 있는 개체의 형식 정보를 검색합니다.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32)

개체에서 제공하는 형식 정보 인터페이스의 수를 검색합니다(0 또는 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

개체에서 노출하는 메서드와 속성에 대한 액세스를 제공합니다.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Applies to

See also