Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Type.GetConstructor-Methode: (BindingFlags, Binder, Type[], ParameterModifier[])

 

Veröffentlicht: Oktober 2016

Sucht einen Konstruktor, dessen Parameter unter Verwendung der angegebenen Bindungseinschränkungen den angegebenen Argumenttypen und -modifizierern entsprechen.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public ConstructorInfo GetConstructor(
	BindingFlags bindingAttr,
	Binder binder,
	Type[] types,
	ParameterModifier[] modifiers
)

Parameter

bindingAttr
Type: System.Reflection.BindingFlags

Eine Bitmaske aus einem oder mehreren BindingFlags, die angeben, wie die Suche durchgeführt wird.

- oder -

0 (null), damit null zurückgegeben wird.

binder
Type: System.Reflection.Binder

Ein Objekt, das eine Gruppe von Eigenschaften definiert und eine Bindung ermöglicht. Dazu kann die Auswahl einer überladenen Methode, die Umwandlung von Argumenttypen und der Aufruf eines Members durch Reflektion gehören.

- oder -

Ein Nullverweis (Nothing in Visual Basic), wenn DefaultBinder verwendet werden soll.

types
Type: System.Type[]

Ein Array von Type-Objekten, das Anzahl, Reihenfolge und Typ der Parameter des abzurufenden Konstruktors darstellt.

- oder -

Ein leeres Array vom Type-Typ, d. h. Type[] types = new Type[0], zum Abrufen eines Konstruktors, der keine Parameter akzeptiert.

- oder -

EmptyTypes.

modifiers
Type: System.Reflection.ParameterModifier[]

Ein Array von ParameterModifier-Objekten, die die Attribute darstellen, die dem entsprechenden Element im Parametertyparray zugeordnet sind. Der Standardbinder verarbeitet diesen Parameter nicht.

Rückgabewert

Type: System.Reflection.ConstructorInfo

Ein ConstructorInfo-Objekt, das den Konstruktor darstellt, der den angegebenen Anforderungen entspricht, oder null, wenn kein entsprechender Konstruktor gefunden wurde.

Exception Condition
ArgumentNullException

types ist null.

- oder -

Eines der Elemente in types ist null.

ArgumentException

types ist mehrdimensional.

- oder -

modifiers ist mehrdimensional.

- oder -

types und modifiers weisen nicht die gleiche Länge auf.

Wenn eine genaue Übereinstimmung nicht vorhanden ist, die binder wird versucht, die im angegebenen Parametertypen zu konvertieren die types Array um eine Übereinstimmung zu aktivieren. Wenn die binder kann eine Übereinstimmung, wählen Sie dann null zurückgegeben wird.

Die folgenden BindingFlags Filterkennzeichnungen genutzt werden, welche Konstruktoren in die Suche einbezogen werden:

  • Geben Sie BindingFlags.Instance oder BindingFlags.Static ändern, um einen Rückgabewert zu erhalten.

  • Geben Sie BindingFlags.Public öffentliche Konstruktoren in die Suche eingeschlossen werden sollen.

  • Geben Sie BindingFlags.NonPublic nicht öffentlichen Konstruktoren (d. h. private, interne und geschützte Konstruktoren) in die Suche eingeschlossen werden sollen.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Um die klasseninitialisierung (".cctor"), die Verwendung dieser methodenüberladung zu erhalten, müssen Sie angeben BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic). Außerdem erhalten Sie, dass die klasseninitialisierung verwenden die TypeInitializer Eigenschaft.

System_CAPS_noteHinweis

Sie können keine Parameter auslassen, beim Nachschlagen von Konstruktoren und Methoden. Sie können nur Parameter auslassen, aufrufen.

Wenn die aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die ConstructorInfo mit Parametern für den durch die entsprechenden Typargumente ersetzt. Wenn die aktuelle Type einen Typparameter in der Definition eines generischen Typs oder generische Methode darstellt, auf diese Methode gibt immer null.

Das folgende Programm ruft den Typ der MyClass1 -Klasse ruft die ConstructorInfo -Objekt den angegebenen Bindungsflags und zeigt die Signatur des Konstruktors.

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 constructor that is public and takes an integer parameter.
            ConstructorInfo constructorInfoObj = myType.GetConstructor(
                BindingFlags.Instance | BindingFlags.Public, null, types, null);
            if (constructorInfoObj != null )
            {
                Console.WriteLine("The constructor of MyClass1 that is public " +
                    "and takes an integer as a parameter is:");
                Console.WriteLine(constructorInfoObj.ToString());
            }
            else
            {
                Console.WriteLine("The constructor of the MyClass1 that is public " +
                    "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);
        }
    }
}

.NET Framework
Verfügbar seit 1.1
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen: