Type.GetPropertyImpl Metodo

Definizione

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

protected:
 abstract System::Reflection::PropertyInfo ^ GetPropertyImpl(System::String ^ name, System::Reflection::BindingFlags bindingAttr, System::Reflection::Binder ^ binder, Type ^ returnType, cli::array <Type ^> ^ types, cli::array <System::Reflection::ParameterModifier> ^ modifiers);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)]
protected abstract System.Reflection.PropertyInfo? GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, Type? returnType, Type[]? types, System.Reflection.ParameterModifier[]? modifiers);
protected abstract System.Reflection.PropertyInfo GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, Type returnType, Type[] types, System.Reflection.ParameterModifier[] modifiers);
protected abstract System.Reflection.PropertyInfo? GetPropertyImpl(string name, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder? binder, Type? returnType, Type[]? types, System.Reflection.ParameterModifier[]? modifiers);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.NonPublicProperties | System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.PublicProperties)>]
abstract member GetPropertyImpl : string * System.Reflection.BindingFlags * System.Reflection.Binder * Type * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.PropertyInfo
abstract member GetPropertyImpl : string * System.Reflection.BindingFlags * System.Reflection.Binder * Type * Type[] * System.Reflection.ParameterModifier[] -> System.Reflection.PropertyInfo
Protected MustOverride Function GetPropertyImpl (name As String, bindingAttr As BindingFlags, binder As Binder, returnType As Type, types As Type(), modifiers As ParameterModifier()) As PropertyInfo

Parametri

name
String

Stringa contenente il nome della proprietà da ottenere.

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 membro 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.

returnType
Type

Tipo restituito della proprietà.

types
Type[]

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

oppure

Matrice vuota del tipo Type ,ovvero Type[] types = new Type[0]) per ottenere una proprietà non indicizzata.

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 che rappresenta la proprietà che soddisfa i requisiti specificati, se trovato; in caso contrario, null.

Attributi

Eccezioni

Vengono trovate più proprietà con il nome specificato e corrispondenti ai vincoli di associazione specificati.

name è null.

oppure

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.

I flag di filtro seguenti BindingFlags possono essere usati per definire le proprietà da includere nella ricerca:

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

  • Specificare BindingFlags.Public per includere le proprietà pubbliche nella ricerca.

  • Specificare BindingFlags.NonPublic di includere proprietà non pubbliche , ovvero proprietà private, interne e protette, nella ricerca.

  • Specificare BindingFlags.FlattenHierarchy di includere public e protected membri statici nella gerarchia. private I membri statici nelle classi ereditate non sono inclusi.

Per modificare il funzionamento della ricerca, è possibile usare i flag di modificatore seguenti BindingFlags :

  • BindingFlags.IgnoreCase per ignorare il caso di name.

  • BindingFlags.DeclaredOnly per cercare solo le proprietà dichiarate in Type, non le proprietà semplicemente ereditate.

Per altre informazioni, vedere System.Reflection.BindingFlags.

Si applica a

Vedi anche