TypeDescriptor.AddProvider Метод

Определение

Добавляет поставщик описания типа в список поставщиков для этого дескриптора типа.Adds a type description provider to the list of providers for this type descriptor.

Перегрузки

AddProvider(TypeDescriptionProvider, Object)

Добавляет поставщик описания типа для одного экземпляра компонента.Adds a type description provider for a single instance of a component.

AddProvider(TypeDescriptionProvider, Type)

Добавляет поставщика описания типа для класса компонента.Adds a type description provider for a component class.

AddProvider(TypeDescriptionProvider, Object)

Добавляет поставщик описания типа для одного экземпляра компонента.Adds a type description provider for a single instance of a component.

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.The TypeDescriptionProvider to add.

instance
Object

Экземпляр целевого компонента.An instance of the target component.

Исключения

Хотя бы один параметр имеет значение null.One or both of the parameters are null.

Комментарии

Метод AddProvider(TypeDescriptionProvider, Object) добавляет поставщик описания типа, который предоставляет сведения о типе для одного экземпляра компонента.The AddProvider(TypeDescriptionProvider, Object) method adds a type description provider that supplies type information for a single instance of a component. Если поставщик добавляется этим методом, метод CreateInstance поставщика не будет вызван, так как экземпляр уже существует.If a provider is added by this method, the provider's CreateInstance method will not be called because the instance already exists.

Этот метод не поддерживает жесткую ссылку на компонент, поэтому он не предотвращает завершение компонента.This method does not maintain a hard reference to the component, so it does not prevent the component from finalizing.

Можно добавить несколько поставщиков описания типа для одного типа или объекта.It is possible to add multiple type description providers for the same type or object. В этом случае первый обнаруженный поставщик описаний типов, предоставляющий сведения о типе, будет использоваться исключительно.If this occurs, the first type description provider encountered that provides type information will be used exclusively. Так как поставщики сведений о типах хранятся в стеке, последний добавленный поставщик будет первым запрошенным.Since type information providers are stored in a stack, the last provider added will be the first one queried. Такое поведение позволяет AddProvider(TypeDescriptionProvider, Object) и RemoveProvider методы для использования в стек и восстановить тип поставщиков описаний, необходимые для определенных сценариев.This behavior enables the AddProvider(TypeDescriptionProvider, Object) and RemoveProvider methods to be used to push and pop type description providers as required for particular scenarios.

В случае успеха этот метод вызывает метод Refresh(Object) для параметра instance.If successful, this method calls the Refresh(Object) method on the instance parameter.

Примечание

Две версии этого метода дают результаты с разными областями.The two versions of this method produce results with different scopes. Метод AddProvider, принимающий параметр Object, влияет только на один экземпляр указанного компонента.The AddProvider method that takes an Object parameter affects only that single instance of the component specified. Напротив, другая перегрузка, которая принимает параметр Type, влияет на все экземпляры компонента, описываемого этим типом.In contrast, the other overload, which takes a Type parameter, affects all instances of the component described by that type.

Если необходимо вызвать из частично доверенного кода, используйте метод AddProviderTransparent(TypeDescriptionProvider, Object).Use the AddProviderTransparent(TypeDescriptionProvider, Object) method if you need to call from partially trusted code.

Безопасность

NamedPermissionSet
для полного доступа к системным ресурсам.for full access to system resources. Значение по запросу: LinkDemand.Demand value: LinkDemand. Связанное состояние:Associated state:

Дополнительно

AddProvider(TypeDescriptionProvider, Type)

Добавляет поставщика описания типа для класса компонента.Adds a type description provider for a component class.

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

Параметры

provider
TypeDescriptionProvider

Добавляемый объект TypeDescriptionProvider.The TypeDescriptionProvider to add.

type
Type

Тип Type целевого компонента.The Type of the target component.

Исключения

Хотя бы один параметр имеет значение null.One or both of the parameters are null.

Комментарии

Метод AddProvider(TypeDescriptionProvider, Type) добавляет поставщик описания типа, который предоставляет сведения о типах для указанного класса, производных классов и всех экземпляров этих типов.The AddProvider(TypeDescriptionProvider, Type) method adds a type description provider that supplies type information for the specified class, derived classes, and all instances of these types.

Примечание

Параметр type может иметь любой тип, включая интерфейс.The type parameter can be any type, including an interface. Например, чтобы предоставить сведения о настраиваемом типе и экземпляре для всех компонентов, необходимо указать typeof(IComponent).For example, to provide custom type and instance information for all components, you would specify typeof(IComponent). Передача typeof(object) вызовет поставщик для предоставления сведений о типе для всех типов.Passing typeof(object) will call the provider to supply type information for all types.

Этот метод не поддерживает жесткую ссылку на какой-либо объект, поэтому он не предотвращает завершение объектов.This method does not maintain a hard reference to any object, so it does not prevent objects from finalizing.

Можно добавить несколько поставщиков описания типа для одного типа или объекта.It is possible to add multiple type description providers for the same type or object. В этом случае первый обнаруженный поставщик описаний типов, предоставляющий сведения о типе, будет использоваться исключительно.If this occurs, the first type description provider encountered that provides type information will be used exclusively. Поскольку поставщики сведений о типах хранятся в стеке, последний добавленный поставщик будет первым запрошенным.Because type information providers are stored in a stack, the last provider added will be the first one queried. Такое поведение позволяет AddProvider(TypeDescriptionProvider, Type) и RemoveProvider методы для использования в стек и восстановить тип поставщиков описаний, необходимые для определенных сценариев.This behavior enables the AddProvider(TypeDescriptionProvider, Type) and RemoveProvider methods to be used to push and pop type description providers as required for particular scenarios.

В случае успеха этот метод вызывает метод Refresh(Type) для параметра type.If successful, this method calls the Refresh(Type) method on the type parameter.

Примечание

Две версии этого метода дают результаты с разными областями.The two versions of this method produce results with different scopes. Метод AddProvider, принимающий параметр Object, влияет только на один экземпляр указанного компонента.The AddProvider method that takes an Object parameter affects only that single instance of the component specified. Напротив, другая перегрузка, которая принимает параметр Type, влияет на все экземпляры компонента, описываемого этим типом.In contrast, the other overload, which takes a Type parameter, affects all instances of the component described by that type.

Если необходимо вызвать из частично доверенного кода, используйте метод AddProviderTransparent(TypeDescriptionProvider, Type).Use the AddProviderTransparent(TypeDescriptionProvider, Type) method if you need to call from partially trusted code.

Безопасность

NamedPermissionSet
для полного доступа к системным ресурсам.for full access to system resources. Значение по запросу: LinkDemand.Demand value: LinkDemand. Связанное состояние:Associated state:

Дополнительно

Применяется к