次の方法で共有


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 => _dataGridView1.DataSource;
    set => _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 オブジェクトの特定の型をIListSourceにポイントするためにDataGridView.DataSourceで使用され、データ バインディングを有効にするために適切なメタデータがIListSourceに配置されます。 そうすることで、外部関係者はすべてのデータ ソースにメタデータを簡単に追加できます。

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

  • プロパティ属性

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

  • プロパティ型の属性

コンストラクター

名前 説明
AttributeProviderAttribute(String, String)

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

AttributeProviderAttribute(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)

適用対象

こちらもご覧ください