Udostępnij za pośrednictwem


TypeDescriptor.AddProvider Metoda

Definicja

Dodaje dostawcę opisu typu do listy dostawców dla deskryptora tego typu.

Przeciążenia

AddProvider(TypeDescriptionProvider, Object)

Dodaje dostawcę opisu typu dla pojedynczego wystąpienia składnika.

AddProvider(TypeDescriptionProvider, Type)

Dodaje dostawcę opisu typu dla klasy składnika.

AddProvider(TypeDescriptionProvider, Object)

Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs

Dodaje dostawcę opisu typu dla pojedynczego wystąpienia składnika.

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)

Parametry

provider
TypeDescriptionProvider

Element do dodania TypeDescriptionProvider .

instance
Object

Wystąpienie składnika docelowego.

Wyjątki

Jeden lub oba parametry to null.

Uwagi

Metoda AddProvider(TypeDescriptionProvider, Object) dodaje dostawcę opisu typu, który dostarcza informacje o typie dla pojedynczego wystąpienia składnika. Jeśli dostawca zostanie dodany przez tę metodę, metoda dostawcy CreateInstance nie zostanie wywołana, ponieważ wystąpienie już istnieje.

Ta metoda nie utrzymuje twardego odwołania do składnika, więc nie uniemożliwia finalizowania składnika.

Istnieje możliwość dodania wielu dostawców opisu typu dla tego samego typu lub obiektu. Jeśli tak się stanie, pierwszy dostawca opisu typu napotkał, który udostępnia informacje o typie, będzie używany wyłącznie. Ponieważ dostawcy informacji o typie są przechowywane w stosie, ostatni dodany dostawca będzie pierwszym, którego dotyczy zapytanie. To zachowanie umożliwia AddProvider(TypeDescriptionProvider, Object) użycie metod i RemoveProvider do wypychania i wyskakujących opisów typów zgodnie z wymaganiami w określonych scenariuszach.

W przypadku powodzenia ta metoda wywołuje metodę Refresh(Object) w parametrze instance .

Uwaga

Dwie wersje tej metody generują wyniki z różnymi zakresami. Metoda AddProvider , która przyjmuje Object parametr, ma wpływ tylko na pojedyncze wystąpienie określonego składnika. Natomiast inne przeciążenie, które przyjmuje Type parametr, wpływa na wszystkie wystąpienia składnika opisanego przez ten typ.

Użyj metody , AddProviderTransparent(TypeDescriptionProvider, Object) jeśli musisz wywołać kod częściowo zaufany.

Zobacz też

Dotyczy

AddProvider(TypeDescriptionProvider, Type)

Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs
Źródło:
TypeDescriptor.cs

Dodaje dostawcę opisu typu dla klasy składnika.

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)

Parametry

provider
TypeDescriptionProvider

Element do dodania TypeDescriptionProvider .

type
Type

Składnik Type docelowy.

Wyjątki

Jeden lub oba parametry to null.

Uwagi

Metoda AddProvider(TypeDescriptionProvider, Type) dodaje dostawcę opisu typu, który dostarcza informacje o typie dla określonej klasy, klas pochodnych i wszystkich wystąpień tych typów.

Uwaga

Parametr type może być dowolnym typem, w tym interfejsem. Aby na przykład podać informacje o typie niestandardowym i wystąpieniu dla wszystkich składników, należy określić typeof(IComponent)wartość . Przekazanie spowoduje wywołanie typeof(object) dostawcy w celu podania informacji o typie dla wszystkich typów.

Ta metoda nie utrzymuje twardego odwołania do żadnego obiektu, więc nie uniemożliwia finalizowania obiektów.

Istnieje możliwość dodania wielu dostawców opisu typu dla tego samego typu lub obiektu. Jeśli tak się stanie, pierwszy dostawca opisu typu napotkał, który udostępnia informacje o typie, będzie używany wyłącznie. Ponieważ dostawcy informacji o typach są przechowywani w stosie, ostatni dodany dostawca będzie pierwszym, którego dotyczy zapytanie. To zachowanie umożliwia AddProvider(TypeDescriptionProvider, Type) użycie metod i RemoveProvider do wypychania i wyskakujących opisów typów zgodnie z wymaganiami w określonych scenariuszach.

W przypadku powodzenia ta metoda wywołuje metodę Refresh(Type) w parametrze type .

Uwaga

Dwie wersje tej metody generują wyniki z różnymi zakresami. Metoda AddProvider , która przyjmuje Object parametr, ma wpływ tylko na pojedyncze wystąpienie określonego składnika. Natomiast inne przeciążenie, które przyjmuje Type parametr, wpływa na wszystkie wystąpienia składnika opisanego przez ten typ.

Użyj metody , AddProviderTransparent(TypeDescriptionProvider, Type) jeśli musisz wywołać kod częściowo zaufany.

Zobacz też

Dotyczy