Type.GetConstructorImpl Metodo

Definizione

In caso di override in una classe derivata, cerca un costruttore i cui parametri corrispondono ai tipi di argomento e ai modificatori specificati, utilizzando i vincoli di associazione specificati e la convenzione di chiamata specificata.

protected:
 abstract System::Reflection::ConstructorInfo ^ GetConstructorImpl(System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, System::Reflection::CallingConventions callConvention, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)]
protected abstract System.Reflection.ConstructorInfo? GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[]? modifiers);
protected abstract System.Reflection.ConstructorInfo GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[] modifiers);
protected abstract System.Reflection.ConstructorInfo? GetConstructorImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, System.Reflection.CallingConventions callConvention, Type[] types, System.Reflection.ParameterModifier[]? modifiers);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicConstructors | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicConstructors)>]
abstract member GetConstructorImpl : System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.ConstructorInfo
abstract member GetConstructorImpl : System.Reflection.BindingFlags * System.Reflection.Binder * System.Reflection.CallingConventions * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.ConstructorInfo
Protected MustOverride Function GetConstructorImpl (bindingAttr As BindingFlags, binder As Binder, callConvention As CallingConventions, types As Type(), modifiers As ParameterModifier()) As ConstructorInfo

Parametri

bindingAttr
BindingFlags

Combinazione bit per bit dei valori di enumerazione che specificano come viene eseguita la ricerca.

oppure

Default per restituire null.

binder
Binder

Oggetto che definisce un set di proprietà e abilita l'associazione, che può comportare la selezione di un metodo di overload, la coercizione dei tipi di argomento e la chiamata di un membro tramite reflection.

oppure

Riferimento Null (Nothing in Visual Basic), per usare il DefaultBinder.

callConvention
CallingConventions

Oggetto che specifica il set di regole da utilizzare per quanto riguarda l'ordine e il layout degli argomenti, il modo in cui viene passato il valore restituito, i registri usati per gli argomenti e lo stack viene pulito.

types
Type[]

Matrice di Type oggetti che rappresentano il numero, l'ordine e il tipo dei parametri per il costruttore da ottenere.

oppure

Matrice vuota del tipo Type ,ovvero Type[] types = new Type[0]) per ottenere un costruttore che non accetta parametri.

modifiers
ParameterModifier[]

Matrice di ParameterModifier oggetti che rappresentano gli attributi associati all'elemento corrispondente nella types matrice. Il gestore di associazione predefinito non elabora questo parametro.

Valori restituiti

Oggetto ConstructorInfo che rappresenta il costruttore che soddisfa i requisiti specificati, se presente; in caso contrario, null.

Attributi

Eccezioni

types è null.

oppure

Uno degli elementi in types è null.

types è multidimensionale.

oppure

modifiers è multidimensionale.

oppure

types e modifiers non hanno la stessa lunghezza.

Commenti

Anche se il binder predefinito non elabora ParameterModifier (il parametro modifiers), è possibile usare la classe astratta System.Reflection.Binder per scrivere un binder personalizzato che esegue l'elaborazione di modifiers. ParameterModifier viene utilizzato solo quando si esegue la chiamata tramite interoperabilità COM e vengono gestiti solo i parametri passati per riferimento.

Se non esiste una corrispondenza esatta, tenterà binder di coercire i tipi di parametro specificati nella types matrice per selezionare una corrispondenza. Se non binder è possibile selezionare una corrispondenza, null viene restituito .

I flag di filtro seguenti BindingFlags possono essere usati per definire i costruttori da includere nella ricerca:

  • È necessario specificare BindingFlags.Instance o BindingFlags.Static per ottenere un ritorno.

  • Specificare BindingFlags.Public per includere costruttori pubblici nella ricerca.

  • Specificare BindingFlags.NonPublic di includere costruttori non pubblici (ovvero costruttori privati, interni e protetti) nella ricerca.

Per altre informazioni, vedere System.Reflection.BindingFlags.

Questo metodo implementa GetConstructor.

Si applica a

Vedi anche