|
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
|
Traduzione
Originale
|
Metodo Type.GetConstructor (BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])
Spazio dei nomi: System
Assembly: mscorlib (in mscorlib.dll)
[ComVisibleAttribute(true)] public ConstructorInfo GetConstructor( BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers )
Parametri
- bindingAttr
- Tipo: System.Reflection.BindingFlags
Maschera di bit costituita da uno o più BindingFlags che consentono di specificare le modalità di esecuzione della ricerca. In alternativa Zero, per restituire null.
- binder
- Tipo: System.Reflection.Binder
Oggetto che definisce una serie di proprietà e consente l'associazione, che può implicare la scelta di un metodo di overload, la coercizione di tipi di argomento e la chiamata di un membro mediante reflection. In alternativa Riferimento null (Nothing in Visual Basic) per utilizzare la proprietà DefaultBinder.
- callConvention
- Tipo: System.Reflection.CallingConventions
Oggetto che specifica il set di regole da utilizzare per l'ordine e il layout degli argomenti, la modalità di passaggio del valore restituito, i registri utilizzati per gli argomenti e la pulizia dello stack.
- types
- Tipo: System.Type[]
Matrice di oggetti Type che rappresenta numero, ordine e tipo dei parametri relativi al costruttore da ottenere. In alternativa Matrice vuota di tipo Type (ovvero Type[] types = new Type[0]) per ottenere un costruttore che non accetta parametri.
- modifiers
- Tipo: System.Reflection.ParameterModifier[]
Matrice di oggetti ParameterModifier che rappresentano gli attributi associati all'elemento corrispondente nella matrice types. Questo parametro non viene elaborato dal gestore di associazione predefinito.
Valore restituito
Tipo: System.Reflection.ConstructorInfoImplementa
_Type.GetConstructor(BindingFlags, Binder, CallingConventions, Type[], ParameterModifier[])| Eccezione | Condizione |
|---|---|
| ArgumentNullException | |
| ArgumentException |
Per ottenere un risultato è necessario specificare BindingFlags.Instance o BindingFlags.Static. Specificare BindingFlags.Public per includere nella ricerca costruttori di tipo pubblico. Specificare BindingFlags.NonPublic per includere nella ricerca costruttori non pubblici, ovvero costruttori privati, interni e protetti.
Nascondi in base al nome e alla firma prende in considerazione tutte le parti della firma, compresi i modificatori personalizzati, i tipi restituiti, i tipi di parametri, i sentinel e le convenzioni di chiamate non gestite. Si tratta di un confronto binario. Per la reflection, le proprietà e gli eventi sono di tipo nascondi in base al nome e alla firma. Se una proprietà dispone della funzione di accesso get e della funzione di accesso set nella classe base, ma la classe derivata dispone solo di una funzione di accesso get, la proprietà della classe derivata nasconde la proprietà della classe base e non sarà possibile accedere alla funzione di accesso set sulla classe base. Gli attributi personalizzati non fanno parte del sistema di tipi comune.
Nota |
|---|
using System; using System.Reflection; using System.Security; public class MyClass1 { public MyClass1(int i){} public static void Main() { try { Type myType = typeof(MyClass1); Type[] types = new Type[1]; types[0] = typeof(int); // Get the public instance constructor that takes an integer parameter. ConstructorInfo constructorInfoObj = myType.GetConstructor( BindingFlags.Instance | BindingFlags.Public, null, CallingConventions.HasThis, types, null); if(constructorInfoObj != null) { Console.WriteLine("The constructor of MyClass1 that is a public " + "instance method and takes an integer as a parameter is: "); Console.WriteLine(constructorInfoObj.ToString()); } else { Console.WriteLine("The constructor of MyClass1 that is a public instance " + "method and takes an integer as a parameter is not available."); } } catch(ArgumentNullException e) { Console.WriteLine("ArgumentNullException: " + e.Message); } catch(ArgumentException e) { Console.WriteLine("ArgumentException: " + e.Message); } catch(SecurityException e) { Console.WriteLine("SecurityException: " + e.Message); } catch(Exception e) { Console.WriteLine("Exception: " + e.Message); } } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)
.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Nota