ConstructorInfo.Invoke Metoda

Definicja

Wywołuje konstruktor odzwierciedlone przez to wystąpienie.

Przeciążenia

Invoke(Object[])

Wywołuje konstruktor odzwierciedlone przez wystąpienie, które ma określone parametry, podając wartości domyślne dla parametrów, które nie są często używane.

Invoke(BindingFlags, Binder, Object[], CultureInfo)

W przypadku implementacji w klasie pochodnej wywołuje konstruktor odzwierciedlany przez to ConstructorInfo z określonymi argumentami w ramach ograniczeń określonego Binderelementu .

Invoke(Object[])

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

Wywołuje konstruktor odzwierciedlone przez wystąpienie, które ma określone parametry, podając wartości domyślne dla parametrów, które nie są często używane.

public:
 virtual System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public:
 System::Object ^ Invoke(cli::array <System::Object ^> ^ parameters);
public virtual object Invoke (object[] parameters);
public object Invoke (object?[]? parameters);
public object Invoke (object[] parameters);
override this.Invoke : obj[] -> obj
Public Overridable Function Invoke (parameters As Object()) As Object
Public Function Invoke (parameters As Object()) As Object

Parametry

parameters
Object[]

Tablica wartości, która odpowiada liczbie, kolejności i typowi (pod ograniczeniami domyślnego powiązania) parametrów tego konstruktora. Jeśli ten konstruktor nie przyjmuje parametrów, użyj tablicy z elementami zerowymi lub null, tak jak w parametrach Object[] = new Object[0]. Każdy obiekt w tej tablicy, który nie jest jawnie zainicjowany z wartością, będzie zawierać wartość domyślną dla tego typu obiektu. W przypadku elementów typu referencyjnego ta wartość to null. W przypadku elementów typu wartości ta wartość to 0, 0,0 lub false, w zależności od określonego typu elementu.

Zwraca

Wystąpienie klasy skojarzonej z konstruktorem.

Wyjątki

Klasa jest abstrakcyjna.

-lub-

Konstruktor jest inicjatorem klasy.

Konstruktor jest prywatny lub chroniony, a obiekt wywołujący nie ma MemberAccess.

Uwaga: na platformie .NET dla aplikacji ze Sklepu Windows lub przenośnej biblioteki klas przechwyć wyjątek klasy bazowej , MemberAccessExceptionzamiast tego.

Tablica parameters nie zawiera wartości pasujących do typów akceptowanych przez ten konstruktor.

Wywoływany konstruktor zgłasza wyjątek.

Przekazano nieprawidłową liczbę parametrów.

TypedReferenceTworzenie typów , ArgIteratori RuntimeArgumentHandle nie jest obsługiwane.

Obiekt wywołujący nie ma niezbędnych uprawnień dostępu do kodu.

Uwagi

Liczba, typ i kolejność elementów w parameters tablicy powinny być identyczne z liczbą, typem i kolejnością parametrów konstruktora odzwierciedlanego przez to wystąpienie. Przed wywołaniem konstruktora zapewnia, Invoke że obiekt wywołujący ma uprawnienia dostępu i sprawdza, czy parametry są prawidłowe.

Ograniczenia dostępu są ignorowane dla w pełni zaufanego kodu. Oznacza to, że można uzyskiwać dostęp do prywatnych konstruktorów, metod, pól i właściwości przy użyciu odbicia za każdym razem, gdy kod jest w pełni zaufany.

Uwaga

Aby utworzyć wystąpienie typu wartości, które nie ma konstruktorów wystąpień, użyj CreateInstance metody .

Ta metoda jest wygodną metodą dla następującej przeciążonej wersji przy użyciu wartości domyślnych. Nie można zastąpić tej metody.

Uwaga

Począwszy od .NET Framework 2.0, ta metoda może służyć do uzyskiwania dostępu do niepublizowanych członków, jeśli obiekt wywołujący otrzymał ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess flagę, a zestaw dotacji niepublizowanych członków jest ograniczony do zestawu dotacji osoby wywołującej lub jego podzbioru. (Zobacz Zagadnienia dotyczące zabezpieczeń do odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa .NET Framework 3.5 lub nowszej.

Dotyczy

Invoke(BindingFlags, Binder, Object[], CultureInfo)

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

W przypadku implementacji w klasie pochodnej wywołuje konstruktor odzwierciedlany przez to ConstructorInfo z określonymi argumentami w ramach ograniczeń określonego Binderelementu .

public:
 abstract System::Object ^ Invoke(System::Reflection::BindingFlags invokeAttr, System::Reflection::Binder ^ binder, cli::array <System::Object ^> ^ parameters, System::Globalization::CultureInfo ^ culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder? binder, object?[]? parameters, System.Globalization.CultureInfo? culture);
public abstract object Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, object[] parameters, System.Globalization.CultureInfo culture);
override this.Invoke : System.Reflection.BindingFlags * System.Reflection.Binder * obj[] * System.Globalization.CultureInfo -> obj
Public MustOverride Function Invoke (invokeAttr As BindingFlags, binder As Binder, parameters As Object(), culture As CultureInfo) As Object

Parametry

invokeAttr
BindingFlags

BindingFlags Jedna z wartości określających typ powiązania.

binder
Binder

Element Binder , który definiuje zestaw właściwości i włącza powiązanie, wymuszanie typów argumentów i wywołanie elementów członkowskich przy użyciu odbicia. Jeśli binder jest to null, Binder.DefaultBinding jest używany.

parameters
Object[]

Tablica typu Object używana do dopasowania liczby, kolejności i typu parametrów dla tego konstruktora pod ograniczeniami binder. Jeśli ten konstruktor nie wymaga parametrów, przekaż tablicę z elementami zerowymi, tak jak w parametrach Object[] = new Object[0]. Każdy obiekt w tej tablicy, który nie jest jawnie zainicjowany z wartością, będzie zawierać wartość domyślną dla tego typu obiektu. W przypadku elementów typu referencyjnego ta wartość to null. W przypadku elementów typu wartości ta wartość to 0, 0,0 lub false, w zależności od określonego typu elementu.

culture
CultureInfo

Służy CultureInfo do zarządzania przymusem typów. Jeśli jest nullto wartość , CultureInfo jest używany element dla bieżącego wątku.

Zwraca

Wystąpienie klasy skojarzonej z konstruktorem.

Wyjątki

Tablica parameters nie zawiera wartości pasujących do typów akceptowanych przez ten konstruktor pod ograniczeniami binder.

Wywoływany konstruktor zgłasza wyjątek.

Przekazano nieprawidłową liczbę parametrów.

TypedReferenceTworzenie typów , ArgIteratori RuntimeArgumentHandle nie jest obsługiwane.

Obiekt wywołujący nie ma niezbędnych uprawnień dostępu do kodu.

Klasa jest abstrakcyjna.

-lub-

Konstruktor jest inicjatorem klasy.

Konstruktor jest prywatny lub chroniony, a obiekt wywołujący nie ma MemberAccess.

Uwagi

Liczba, typ i kolejność elementów w parameters tablicy powinny być identyczne z liczbą, typem i kolejnością parametrów konstruktora odzwierciedlanego przez to wystąpienie.

Przed wywołaniem konstruktora zapewnia, Invoke że obiekt wywołujący ma uprawnienia dostępu i że parametry mają prawidłową liczbę, kolejność i typ.

Ograniczenia dostępu są ignorowane dla w pełni zaufanego kodu. Oznacza to, że można uzyskiwać dostęp do prywatnych konstruktorów, metod, pól i właściwości przy użyciu odbicia za każdym razem, gdy kod jest w pełni zaufany.

Uwaga

Aby utworzyć wystąpienie typu wartości, które nie ma konstruktorów wystąpień, użyj CreateInstance metody .

Uwaga

Począwszy od .NET Framework 2.0, ta metoda może służyć do uzyskiwania dostępu do niepublizowanych członków, jeśli obiekt wywołujący otrzymał ReflectionPermissionReflectionPermissionFlag.RestrictedMemberAccess flagę, a zestaw dotacji niepublizowanych członków jest ograniczony do zestawu dotacji osoby wywołującej lub jego podzbioru. (Zobacz Zagadnienia dotyczące zabezpieczeń do odbicia). Aby korzystać z tej funkcji, aplikacja powinna być docelowa .NET Framework 3.5 lub nowszej.

Zobacz też

Dotyczy