TypeDescriptor.AddProvider 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将类型描述提供程序添加到此类型描述符的提供程序的列表。
重载
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)
参数
- provider
- TypeDescriptionProvider
要添加的 TypeDescriptionProvider。
- 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)
参数
- provider
- TypeDescriptionProvider
要添加的 TypeDescriptionProvider。
例外
两个参数之一或两个参数均为 null
。
注解
方法 AddProvider(TypeDescriptionProvider, Type) 添加一个类型说明提供程序,该提供程序为指定的类、派生类和这些类型的所有实例提供类型信息。
注意
参数 type
可以是任意类型,包括 接口。 例如,若要为所有组件提供自定义类型和实例信息,请指定 typeof(IComponent)
。 传递 typeof(object)
将调用提供程序以提供所有类型的类型信息。
此方法不保留对任何对象的硬引用,因此不会阻止对象最终确定。
可以针对同一类型或对象添加多个类型说明提供程序。 如果发生这种情况,将独占使用提供类型信息的第一个类型说明提供程序。 由于类型信息提供程序存储在堆栈中,因此添加的最后一个提供程序将是查询的第一个提供程序。 此行为使 AddProvider(TypeDescriptionProvider, Type) 和 RemoveProvider 方法可用于推送和弹出特定方案所需的说明提供程序。
如果成功,此方法将调用 Refresh(Type) 参数上的 type
方法。
注意
此方法的两个版本生成具有不同范围的结果。 AddProvider采用Object参数的方法仅影响指定组件的单个实例。 相比之下,另一个 Type 采用参数的重载会影响该类型所描述的组件的所有实例。
如果需要从部分受信任的代码调用, AddProviderTransparent(TypeDescriptionProvider, Type) 请使用 方法。