次の方法で共有


AttributeProviderAttribute クラス

定義

属性のリダイレクトを有効にします。 このクラスは継承できません。

public ref class AttributeProviderAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public class AttributeProviderAttribute : Attribute
public class AttributeProviderAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property)>]
type AttributeProviderAttribute = class
    inherit Attribute
type AttributeProviderAttribute = class
    inherit Attribute
Public Class AttributeProviderAttribute
Inherits Attribute
継承
AttributeProviderAttribute
属性

次のコード例では、 を使用してAttributeProviderAttribute、特定の型の IListSourceプロパティをマークDataSourceする方法を示します。 完全なコード一覧については、「方法: Windows フォーム コントロールで属性を適用する」を参照してください。

[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

注釈

.NET Framework オブジェクト モデルでは、プロパティが意図的に漠然と型指定される場合がいくつかあります。 たとえば、 DataGridView.DataSource プロパティは と object入力されます。 この理由は、このプロパティが複数の種類の入力を受け入れることができるためです。 残念ながら、これはプロパティの特性を記述するメタデータを追加する一般的な場所を提供しません。 .NET Framework全体の各DataSourceプロパティには、型コンバーター、UI 型エディター、およびメタデータを必要とするその他のサービスに対して同じメタデータが必要です。 この状況の AttributeProviderAttribute 救済策。

この属性をプロパティに配置すると、プロパティ記述子のコレクションの属性を取得するための規則が MemberDescriptor.Attributes 異なります。 通常、プロパティ記述子はローカル属性を収集し、これらをプロパティ型の属性とマージします。 この場合、属性は、実際のプロパティ型からではなく、 AttributeProviderAttributeから返された型から取得されます。 この属性は、オブジェクトの特定の型を DataGridView.DataSource を指すために IListSourceDataGridView.DataSource使用され、データ バインディングを有効にするために適切なメタデータが にIListSource配置されます。 そのため、外部関係者はすべてのデータ ソースにメタデータを簡単に追加できます。

AttributeProviderAttribute 宣言された型から取得された属性は、プロパティの型の属性と プロパティの属性の間に優先度があります。 次の一覧は、優先順に、使用可能なマージされた属性の完全なセットを示しています。

  • プロパティの属性

  • 属性プロバイダーの属性

  • プロパティ型の属性

コンストラクター

AttributeProviderAttribute(String)

指定した型名を使用して AttributeProviderAttribute クラスの新しいインスタンスを初期化します。

AttributeProviderAttribute(String, String)

指定した型名とプロパティ名を使用して、AttributeProviderAttribute クラスの新しいインスタンスを初期化します。

AttributeProviderAttribute(Type)

指定した型を使用して、AttributeProviderAttribute クラスの新しいインスタンスを初期化します。

プロパティ

PropertyName

属性を取得するプロパティの名前を取得します。

TypeId

派生クラスで実装されると、この Attribute の一意の識別子を取得します。

(継承元 Attribute)
TypeName

コンストラクターに渡されるアセンブリ修飾型名を取得します。

メソッド

Equals(Object)

このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。

(継承元 Attribute)
GetHashCode()

このインスタンスのハッシュ コードを返します。

(継承元 Attribute)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
IsDefaultAttribute()

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。

(継承元 Attribute)
Match(Object)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。

(継承元 Attribute)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

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

一連の名前を対応する一連のディスパッチ識別子に割り当てます。

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。

(継承元 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。

(継承元 Attribute)

適用対象

こちらもご覧ください