Condividi tramite


ConstructorInfo.Invoke Metodo

Definizione

Richiama il costruttore riprodotto da questa istanza.

Overload

Invoke(Object[])

Richiama il costruttore riflesso dall'istanza che ha i parametri specificati fornendo i valori predefiniti per i parametri che non sono di uso comune.

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

Quando è implementato in una classe derivata, richiama il costruttore riprodotto da questo oggetto ConstructorInfo con gli argomenti specificati, in base ai vincoli dell'oggetto Binder specificato.

Invoke(Object[])

Origine:
ConstructorInfo.cs
Origine:
ConstructorInfo.cs
Origine:
ConstructorInfo.cs

Richiama il costruttore riflesso dall'istanza che ha i parametri specificati fornendo i valori predefiniti per i parametri che non sono di uso comune.

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

Parametri

parameters
Object[]

Matrice di valori che corrisponde al numero, all'ordine e al tipo (in base ai vincoli del binder predefinito) dei parametri per questo costruttore. Se questo costruttore non accetta parametri, usare una matrice con zero elementi o null, come in Object[] parameters = new Object[0]. Qualsiasi oggetto in questa matrice non inizializzato in modo esplicito con un valore conterrà il valore predefinito per quel tipo di oggetto. Per gli elementi di tipo riferimento, questo valore è null. Per gli elementi di tipo valore, questo valore è 0, 0.0 o false, a seconda del tipo di elemento specifico.

Restituisce

Istanza della classe associata al costruttore.

Eccezioni

La classe è astratta.

-oppure-

Il costruttore è un inizializzatore di classi.

Il costruttore è privato o protetto e il chiamante non dispone di MemberAccess.

Nota: in .NET per le app di Windows Store o nella libreria di classi portabile intercettare invece l'eccezione della classe di base, MemberAccessException, .

La matrice parameters non contiene valori che corrispondono ai tipi accettati da questo costruttore.

Il costruttore richiamato genera un'eccezione.

È stato passato un numero errato di parametri.

La creazione dei tipi TypedReference, ArgIterator e RuntimeArgumentHandle non è supportata.

Il chiamante non ha le autorizzazioni necessarie per accedere al codice.

Commenti

Il numero, il tipo e l'ordine degli elementi nella parameters matrice devono essere identici al numero, al tipo e all'ordine dei parametri per il costruttore riflessa da questa istanza. Prima di chiamare il costruttore, Invoke verifica che il chiamante disponga dell'autorizzazione di accesso e verifichi che i parametri siano validi.

Le restrizioni di accesso vengono ignorate per il codice completamente attendibile. Vale a dire, i costruttori privati, i metodi, i campi e le proprietà possono essere accessibili e richiamati tramite reflection ogni volta che il codice è completamente attendibile.

Nota

Per creare un'istanza di un tipo valore senza costruttori di istanza, utilizzare il CreateInstance metodo .

Questo metodo è un metodo pratico per la versione di overload seguente, usando i valori predefiniti. Questo metodo non può essere sottoposto a override.

Nota

A partire da .NET Framework 2.0, questo metodo può essere usato per accedere a membri non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessioni dei membri non pubblici è limitato al set di concessioni del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per la reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.

Si applica a

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

Origine:
ConstructorInfo.cs
Origine:
ConstructorInfo.cs
Origine:
ConstructorInfo.cs

Quando è implementato in una classe derivata, richiama il costruttore riprodotto da questo oggetto ConstructorInfo con gli argomenti specificati, in base ai vincoli dell'oggetto Binder specificato.

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

Parametri

invokeAttr
BindingFlags

Uno dei valori di BindingFlags che specifica il tipo di associazione.

binder
Binder

Oggetto Binder che definisce un set di proprietà e abilita l'associazione, la coercizione dei tipi di argomento e la chiamata dei membri tramite reflection. Se binder è null, viene utilizzato Binder.DefaultBinding.

parameters
Object[]

Matrice di tipo Object utilizzata per la corrispondenza del numero, dell'ordine e del tipo dei parametri per questo costruttore, in base ai vincoli dell'oggetto binder. Se questo costruttore non richiede parametri, passare una matrice con zero elementi, come in Object[] parameters = new Object[0]. Qualsiasi oggetto in questa matrice non inizializzato in modo esplicito con un valore conterrà il valore predefinito per quel tipo di oggetto. Per gli elementi di tipo riferimento, questo valore è null. Per gli elementi di tipo valore, questo valore è 0, 0.0 o false, a seconda del tipo di elemento specifico.

culture
CultureInfo

Oggetto CultureInfo usato per regolare la coercizione dei tipi. Se è null, per il thread corrente verrà usato l'oggetto CultureInfo.

Restituisce

Istanza della classe associata al costruttore.

Eccezioni

La matrice parameters non contiene valori corrispondenti ai tipi accettati da questo costruttore, in base ai vincoli dell'oggetto binder.

Il costruttore richiamato genera un'eccezione.

È stato passato un numero errato di parametri.

La creazione dei tipi TypedReference, ArgIterator e RuntimeArgumentHandle non è supportata.

Il chiamante non dispone delle autorizzazioni necessarie per l'accesso di codice.

La classe è astratta.

-oppure-

Il costruttore è un inizializzatore di classi.

Il costruttore è privato o protetto e il chiamante non dispone di MemberAccess.

Commenti

Il numero, il tipo e l'ordine degli elementi nella parameters matrice devono essere identici al numero, al tipo e all'ordine dei parametri per il costruttore riflessa da questa istanza.

Prima di chiamare il costruttore, Invoke assicura che il chiamante disponga dell'autorizzazione di accesso e che i parametri siano del numero, dell'ordine e del tipo corretti.

Le restrizioni di accesso vengono ignorate per il codice completamente attendibile. Vale a dire, i costruttori privati, i metodi, i campi e le proprietà possono essere accessibili e richiamati tramite reflection ogni volta che il codice è completamente attendibile.

Nota

Per creare un'istanza di un tipo valore senza costruttori di istanza, utilizzare il CreateInstance metodo .

Nota

A partire da .NET Framework 2.0, questo metodo può essere usato per accedere a membri non pubblici se il chiamante è stato concesso ReflectionPermission con il ReflectionPermissionFlag.RestrictedMemberAccess flag e se il set di concessioni dei membri non pubblici è limitato al set di concessioni del chiamante o a un subset. Vedere Considerazioni sulla sicurezza per la reflection. Per usare questa funzionalità, l'applicazione deve avere come destinazione .NET Framework 3.5 o versione successiva.

Vedi anche

Si applica a