(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Type.GetProperties-Methode (BindingFlags)

Sucht beim Überschreiben in einer abgeleiteten Klasse unter Verwendung der angegebenen Bindungseinschränkungen die Eigenschaften des aktuellen Type.

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

public abstract PropertyInfo[] GetProperties(
	BindingFlags bindingAttr
)

Parameter

bindingAttr
Typ: 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.

Rückgabewert

Typ: System.Reflection.PropertyInfo[]
Ein Array von PropertyInfo-Objekten, die sämtliche Eigenschaften des aktuellen Type darstellen, die den angegebenen Bindungseinschränkungen entsprechen.
- oder -
Ein leeres Array vom PropertyInfo-Typ, wenn der aktuelle Type keine Eigenschaften besitzt oder keine der Eigenschaften den Bindungseinschränkungen entspricht.

Implementiert

_Type.GetProperties(BindingFlags)
IReflect.GetProperties(BindingFlags)

Eine Eigenschaft wird von der Reflektion als öffentlich betrachtet, wenn sie mindestens einen öffentlichen Accessor besitzt. Andernfalls wird die Eigenschaft als privat betrachtet, und Sie müssen BindingFlags.NonPublic verwenden. | BindingFlags.Instance | BindingFlags.Static (kombinieren Sie in Visual Basic die Werte mit Or), um abzurufen.

Die GetProperties-Methode gibt Eigenschaften nicht in einer bestimmten Reihenfolge zurück, d. h. nicht in alphabetischer Reihenfolge oder in der Reihenfolge der Deklaration. Der Code darf daher nicht von der Reihenfolge der zurückgegebenen Eigenschaften abhängen, da diese variieren kann.

Über die folgenden BindingFlags-Filterflags kann festgelegt werden, welche geschachtelten Typen in die Suche einbezogen werden:

  • Es wird nur dann ein Ergebnis zurückgegeben, wenn entweder BindingFlags.Instance oder BindingFlags.Static angegeben wird.

  • Geben Sie BindingFlags.Public an, um öffentliche Eigenschaften in die Suche einzubeziehen.

  • Geben Sie BindingFlags.NonPublic an, um nicht öffentliche Eigenschaften d. h. private, interne und geschützte Eigenschaften, in die Suche einzubeziehen. Nur geschützte und interne Eigenschaften für Basisklassen werden zurückgegeben. Private Eigenschaften für Basisklassen werden nicht zurückgegeben.

  • Geben Sie BindingFlags.FlattenHierarchy an, um statische public-Member und protected-Member in der Hierarchie einzuschließen. Statische private-Member in vererbten Klassen sind nicht eingeschlossen.

Die Funktionsweise der Suche kann über die folgenden BindingFlags-Modifiziererflags beeinflusst werden:

  • BindingFlags.DeclaredOnly , wenn ausschließlich nach für Type deklarierten Eigenschaften gesucht werden soll und nicht nach Eigenschaften, die nur geerbt wurden.

Weitere Informationen finden Sie unter System.Reflection.BindingFlags.

Eine Eigenschaft wird von der Reflektion als öffentlich betrachtet, wenn sie mindestens einen öffentlichen Accessor besitzt. Andernfalls wird die Eigenschaft als privat betrachtet, und Sie müssen BindingFlags.NonPublic verwenden. | BindingFlags.Instance | BindingFlags.Static (kombinieren Sie in Visual Basic die Werte mit Or), um abzurufen.

Wenn der aktuelle T:System.Type einen konstruierten generischen Typ darstellt, gibt diese Methode die PropertyInfo-Objekte zurück, wobei die Typparameter durch die entsprechenden Typargumente ersetzt wurden.

Wenn der aktuelle Type einen Typparameter einer generischen Typ- oder Methodendefinition darstellt, durchsucht diese Methode die Eigenschaften der Klasseneinschränkung.

Im folgenden Beispiel werden zwei öffentliche und eine geschützte Eigenschaft erstellt und Informationen zu dem Eigenschaften angezeigt, die den angegebenen Bindungseinschränkungen entsprechen.



using System;
using System.Reflection;
using System.Reflection.Emit;

// Create a class having three properties.
public class MyTypeClass
{
    public String MyProperty1
    {
        get 
        {
            return "hello";
        }
    }
    public String MyProperty2 
    {
        get 
        {
            return "hello";
        }
    }
    protected String MyProperty3
    {
        get
        {
            return "hello";
        }
    }
}

public class TypeMain
{
    public static void Main() 
    {
        Type myType =(typeof(MyTypeClass));
        // Get the public properties.
        PropertyInfo[] myPropertyInfo = myType.GetProperties(BindingFlags.Public|BindingFlags.Instance);
        Console.WriteLine("The number of public properties is {0}.", myPropertyInfo.Length);
        // Display the public properties.
        DisplayPropertyInfo(myPropertyInfo);
        // Get the nonpublic properties.
        PropertyInfo[] myPropertyInfo1 = myType.GetProperties(BindingFlags.NonPublic|BindingFlags.Instance);
        Console.WriteLine("The number of protected properties is {0}.", myPropertyInfo1.Length);
        // Display all the nonpublic properties.
        DisplayPropertyInfo(myPropertyInfo1);		
    }
    public static void DisplayPropertyInfo(PropertyInfo[] myPropertyInfo)
    {
        // Display information for all properties.
        for(int i=0;i<myPropertyInfo.Length;i++)
        {
            PropertyInfo myPropInfo = (PropertyInfo)myPropertyInfo[i];
            Console.WriteLine("The property name is {0}.", myPropInfo.Name);
            Console.WriteLine("The property type is {0}.", myPropInfo.PropertyType);
        }
    }
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft