Type.GetConstructorImpl Metódus

Definíció

Ha egy származtatott osztályban felül van bírálva, olyan konstruktort keres, amelynek paraméterei megfelelnek a megadott argumentumtípusoknak és módosítóknak a megadott kötési megkötések és a megadott hívási konvenciók használatával.

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

Paraméterek

bindingAttr
BindingFlags

A számbavételi értékek bitenkénti kombinációja, amely meghatározza a keresés menetét.

-vagy-

Default visszatéréshez null.

binder
Binder

Olyan objektum, amely tulajdonságokat határoz meg, és engedélyezi a kötést, amely magában foglalhatja egy túlterhelt metódus kiválasztását, az argumentumtípusok kényszerítését és a tag meghívását a tükröződésen keresztül.

-vagy-

Nullhivatkozás (Nothing Visual Basic) a DefaultBinder használatához.

callConvention
CallingConventions

Az az objektum, amely meghatározza az argumentumok sorrendjére és elrendezésére, a visszatérési érték átadásának módjára, az argumentumokhoz használt regiszterekre vonatkozó szabályokat, és a vermet megtisztítja.

types
Type[]

Objektumtömb Type , amely a konstruktor lekéréséhez szükséges paraméterek számát, sorrendjét és típusát jelöli.

-vagy-

A típus Type üres tömbje (azaz Type[] types = new Type[0]) egy olyan konstruktor lekéréséhez, amely nem vesz fel paramétereket.

modifiers
ParameterModifier[]

A tömb megfelelő eleméhez ParameterModifier társított attribútumokat képviselő objektumtömbtypes. Az alapértelmezett iratgyűjtő nem dolgozza fel ezt a paramétert.

Válaszok

A ConstructorInfo konstruktort képviselő objektum, amely megfelel a megadott követelményeknek, ha megtalálható; ellenkező esetben null.

Attribútumok

Kivételek

types az null.

-vagy-

Az egyik elem a types.null

types többdimenziós.

-vagy-

modifiers többdimenziós.

-vagy-

types és modifiers nem azonos hosszúságúak.

Megjegyzések

Bár az alapértelmezett kötő nem dolgozza fel a ParameterModifier (a modifiers paramétert), az absztrakt System.Reflection.Binder osztály használatával írhat egy egyedi kötőt, amely feldolgozza a modifiers. ParameterModifier csak com-interop-on keresztüli híváskor használatos, és csak a hivatkozás által átadott paramétereket kezeli a rendszer.

Ha nem létezik pontos egyezés, a binder rendszer megkísérli kényszeríteni a tömbben megadott paramétertípusokat egyezés types kiválasztásához. Ha a binder függvény nem tud kiválasztani egyezést, akkor null a függvény visszaadja.

A következő BindingFlags szűrőjelölők segítségével határozhatja meg, hogy mely konstruktorokat vegye fel a keresésbe:

  • A visszatéréshez meg kell adnia vagy a BindingFlags.Instance vagy a BindingFlags.Static.

  • Adja meg BindingFlags.Public , hogy a nyilvános konstruktorok is szerepeljenek a keresésben.

  • Adja meg BindingFlags.NonPublic , hogy nem nyilvános konstruktorokat (azaz privát, belső és védett konstruktorokat) is belefoglaljon a keresésbe.

További információért lásd a System.Reflection.BindingFlags jelű részt.

Ez a metódus implementálja a GetConstructor.

A következőre érvényes:

Lásd még