TypeDescriptor.AddProvider メソッド

定義

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

オーバーロード

名前 説明
AddProvider(TypeDescriptionProvider, Object)

コンポーネントの単一インスタンスの型記述プロバイダーを追加します。

AddProvider(TypeDescriptionProvider, Type)

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

AddProvider(TypeDescriptionProvider, Object)

コンポーネントの単一インスタンスの型記述プロバイダーを追加します。

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 メソッドを使用して、型記述プロバイダーをプッシュおよびポップできます。

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

Note

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

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

こちらもご覧ください

適用対象

AddProvider(TypeDescriptionProvider, Type)

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

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) メソッドは、指定したクラス、派生クラス、およびこれらの型のすべてのインスタンスの型情報を提供する型記述プロバイダーを追加します。

Note

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

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

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

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

Note

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

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

こちらもご覧ください

適用対象