TypeDescriptor.AddProvider 方法

定义

将类型描述提供程序添加到此类型描述符的提供程序的列表。

重载

AddProvider(TypeDescriptionProvider, Object)

为某个组件的单个实例添加类型描述提供程序。

AddProvider(TypeDescriptionProvider, Type)

为组件类添加类型说明提供程序。

AddProvider(TypeDescriptionProvider, Object)

Source:
TypeDescriptor.cs
Source:
TypeDescriptor.cs
Source:
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) 添加一个类型说明提供程序,该提供程序为组件的单个实例提供类型信息。 如果通过此方法添加提供程序,则不会调用提供程序 CreateInstance 的 方法,因为实例已存在。

此方法不维护对组件的硬引用,因此不会阻止组件最终完成。

可以针对同一类型或对象添加多个类型说明提供程序。 如果发生这种情况,将独占使用提供类型信息的第一个类型说明提供程序。 由于类型信息提供程序存储在堆栈中,因此添加的最后一个提供程序将是查询的第一个提供程序。 此行为使 AddProvider(TypeDescriptionProvider, Object)RemoveProvider 方法可用于推送和弹出特定方案所需的说明提供程序。

如果成功,此方法将调用 Refresh(Object) 参数上的 instance 方法。

注意

此方法的两个版本生成具有不同范围的结果。 AddProvider采用Object参数的方法仅影响指定组件的单个实例。 相比之下,另一个 Type 采用参数的重载会影响该类型所描述的组件的所有实例。

如果需要从部分受信任的代码调用, AddProviderTransparent(TypeDescriptionProvider, Object) 请使用 方法。

另请参阅

适用于

AddProvider(TypeDescriptionProvider, Type)

Source:
TypeDescriptor.cs
Source:
TypeDescriptor.cs
Source:
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 方法。

注意

此方法的两个版本生成具有不同范围的结果。 AddProvider采用Object参数的方法仅影响指定组件的单个实例。 相比之下,另一个 Type 采用参数的重载会影响该类型所描述的组件的所有实例。

如果需要从部分受信任的代码调用, AddProviderTransparent(TypeDescriptionProvider, Type) 请使用 方法。

另请参阅

适用于