次の方法で共有


TypeDescriptor.AddProvider メソッド

定義

この型記述子プロバイダーの一覧に、型説明プロバイダーを追加します。

オーバーロード

AddProvider(TypeDescriptionProvider, Object)

コンポーネントの単一インスタンスの型説明の提供元を追加します。

AddProvider(TypeDescriptionProvider, Type)

コンポーネント クラスの型説明プロバイダーを追加します。

AddProvider(TypeDescriptionProvider, Object)

ソース:
TypeDescriptor.cs
ソース:
TypeDescriptor.cs
ソース:
TypeDescriptor.cs

コンポーネントの単一インスタンスの型説明の提供元を追加します。

public:
 static void AddProvider(System::ComponentModel::TypeDescriptionProvider ^ provider, System::Object ^ instance);
public static void AddProvider (System.ComponentModel.TypeDescriptionProvider provider, object instance);
static member AddProvider : System.ComponentModel.TypeDescriptionProvider * obj -> unit
Public Shared Sub AddProvider (provider As TypeDescriptionProvider, instance As Object)

パラメーター

instance
Object

対象コンポーネントのインスタンス。

例外

一方または両方のパラメーターが null です。

注釈

メソッドは AddProvider(TypeDescriptionProvider, Object) 、コンポーネントの 1 つのインスタンスの型情報を提供する型記述プロバイダーを追加します。 このメソッドによってプロバイダーが追加された場合、インスタンスが既に存在するため、プロバイダー CreateInstance の メソッドは呼び出されません。

このメソッドは、コンポーネントへのハード 参照を維持しないため、コンポーネントの最終処理を妨げません。

同じ型またはオブジェクトに対して複数の型記述プロバイダーを追加できます。 この場合、型情報を提供する最初の型記述プロバイダーが排他的に使用されます。 型情報プロバイダーはスタックに格納されるため、最後に追加されたプロバイダーはクエリの最初のプロバイダーになります。 この動作により、 AddProvider(TypeDescriptionProvider, Object) メソッドと RemoveProvider メソッドを使用して、特定のシナリオで必要に応じて型記述プロバイダーをプッシュおよびポップできます。

成功した場合、このメソッドは パラメーターの Refresh(Object) メソッドを instance 呼び出します。

注意

このメソッドの 2 つのバージョンでは、スコープが異なる結果が生成されます。 パラメーターをObject受け取るメソッドはAddProvider、指定されたコンポーネントの 1 つのインスタンスにのみ影響します。 これに対し、パラメーターを受け取る Type もう 1 つのオーバーロードは、その型で記述されたコンポーネントのすべてのインスタンスに影響します。

部分的に信頼されたコードから を AddProviderTransparent(TypeDescriptionProvider, Object) 呼び出す必要がある場合は、 メソッドを使用します。

こちらもご覧ください

適用対象

AddProvider(TypeDescriptionProvider, Type)

ソース:
TypeDescriptor.cs
ソース:
TypeDescriptor.cs
ソース:
TypeDescriptor.cs

コンポーネント クラスの型説明プロバイダーを追加します。

public:
 static void AddProvider(System::ComponentModel::TypeDescriptionProvider ^ provider, Type ^ type);
public static void AddProvider (System.ComponentModel.TypeDescriptionProvider provider, Type type);
static member AddProvider : System.ComponentModel.TypeDescriptionProvider * Type -> unit
Public Shared Sub AddProvider (provider As TypeDescriptionProvider, type As Type)

パラメーター

type
Type

対象コンポーネントの Type

例外

一方または両方のパラメーターが null です。

注釈

メソッドは AddProvider(TypeDescriptionProvider, Type) 、指定したクラス、派生クラス、およびこれらの型のすべてのインスタンスの型情報を提供する型記述プロバイダーを追加します。

注意

パラメーターには type 、インターフェイスを含む任意の型を指定できます。 たとえば、すべてのコンポーネントにカスタム型とインスタンス情報を提供するには、 を指定 typeof(IComponent)します。 を渡すと typeof(object) 、プロバイダーが呼び出され、すべての型の型情報が提供されます。

このメソッドは、オブジェクトへのハード参照を保持しないため、オブジェクトの終了を妨げません。

同じ型またはオブジェクトに対して複数の型記述プロバイダーを追加できます。 この場合、型情報を提供する最初の型記述プロバイダーが排他的に使用されます。 型情報プロバイダーはスタックに格納されるため、最後に追加されたプロバイダーはクエリの最初のプロバイダーになります。 この動作により、 AddProvider(TypeDescriptionProvider, Type) メソッドと RemoveProvider メソッドを使用して、特定のシナリオで必要に応じて型記述プロバイダーをプッシュおよびポップできます。

成功した場合、このメソッドは パラメーターの Refresh(Type) メソッドを type 呼び出します。

注意

このメソッドの 2 つのバージョンでは、スコープが異なる結果が生成されます。 パラメーターをObject受け取るメソッドはAddProvider、指定されたコンポーネントの 1 つのインスタンスにのみ影響します。 これに対し、パラメーターを受け取る Type もう 1 つのオーバーロードは、その型で記述されたコンポーネントのすべてのインスタンスに影響します。

部分的に信頼されたコードから を AddProviderTransparent(TypeDescriptionProvider, Type) 呼び出す必要がある場合は、 メソッドを使用します。

こちらもご覧ください

適用対象