GetProperty Methode (String, Type)
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.GetProperty-Methode (String, Type)

 

Sucht die öffentliche Eigenschaft mit dem angegebenen Namen und Rückgabetyp.

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

public PropertyInfo GetProperty(
	string name,
	Type returnType
)

Parameter

name

Die Zeichenfolge, die den Namen der abzurufenden öffentlichen Eigenschaft enthält.

returnType

Der Rückgabetyp der Eigenschaft.

Rückgabewert

Type: System.Reflection.PropertyInfo

Ein Objekt, das die öffentliche Eigenschaft mit dem angegebenen Namen darstellt, sofern gefunden, andernfalls null.

Exception Condition
AmbiguousMatchException

Wurde mehr als eine Eigenschaft mit dem angegebenen Namen.

ArgumentNullException

name ist null, oder returnType ist null.

Eine Eigenschaft ist Reflektion als öffentlich betrachtet, die öffentlich ist mindestens ein Accessor aufweist.Andernfalls wird die Eigenschaft als privat betrachtet müssen, und Sie BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (in Visual Basic, kombinieren Sie die Werte mit Or) um es abzurufen.

Bei der Suche nach name Groß-/Kleinschreibung beachtet.Die Suche schließt öffentliche statische und öffentlichen Instanzeigenschaften.

Wenn die aktuelle Type einen konstruierten generischen Typ darstellt, gibt diese Methode die PropertyInfo wobei die Typparameter durch die entsprechenden Typargumente ersetzt.

Wenn die aktuelle Type stellt einen Typparameter in der Definition des generischen Typs oder einer generischen Methode, durchsucht diese Methode die Eigenschaften der Klasseneinschränkung.

Visual Basic 2005, Visual C# 2005, und Visual C++ 2005 bieten eine vereinfachte Syntax für den Zugriff auf indizierte Eigenschaften und ermöglichen eine indizierte Eigenschaft einen Standardwert für den Typ sein.Angenommen, wenn die Variable myList bezieht sich auf eine ArrayList, die Syntax myList[3] (myList(3) in Visual Basic) Ruft das Element mit dem Index 3.Sie können die Eigenschaft überladen.

In c# wird dieses Feature als Indexer bezeichnet und Verweise über den Namen nicht möglich.Standardmäßig wird die ein C#-Indexers in den Metadaten als indizierte Eigenschaft mit dem Namen "Item".Entwickeln einer Klassenbibliothek können jedoch die IndexerNameAttribute Attribut zum Ändern des Namens des Indexers in den Metadaten.Zum Beispiel die String -Klasse verfügt über einen Indexer mit dem Namen Chars. Indizierte Eigenschaften, die mit anderen Sprachen als c# erstellt haben auch die Namen anstelle von Item.

Bestimmt, ob ein Typ über eine Standardeigenschaft verfügt, verwenden Sie die GetCustomAttributes(Type, Boolean) Methode zum Testen der DefaultMemberAttribute Attribut.Wenn der Typ verfügt über DefaultMemberAttribute, die MemberName -Eigenschaft gibt den Namen der Standardeigenschaft zurück.

Im folgenden Beispiel wird eine Klasse mit einer Eigenschaft definiert, und Name und Typ der Eigenschaft abgerufen.


using System;
using System.Reflection;

class MyClass1
{
    String myMessage="Hello World.";
    public string MyProperty1
    {
        get
        {			
            return myMessage;
        }
        set
        {
            myMessage =value;
        }			
    }
}
class TestClass
{
    static void Main()
    {
        try
        {	
            Type myType = typeof(MyClass1);
            // Get the PropertyInfo object representing MyProperty1. 
            PropertyInfo myStringProperties1 = myType.GetProperty("MyProperty1",
                typeof(string));
            Console.WriteLine("The name of the first property of MyClass1 is {0}.", myStringProperties1.Name);
            Console.WriteLine("The type of the first property of MyClass1 is {0}.", myStringProperties1.PropertyType);
        }
        catch(ArgumentNullException e)
        {
            Console.WriteLine("ArgumentNullException :"+e.Message);

        }
        catch(AmbiguousMatchException e)
        {
            Console.WriteLine("AmbiguousMatchException :"+e.Message);
        }
        catch(NullReferenceException e)
        {
            Console.WriteLine("Source : {0}" , e.Source);
            Console.WriteLine("Message : {0}" , e.Message);
        }
	//Output:
	//The name of the first property of MyClass1 is MyProperty1.
	//The type of the first property of MyClass1 is System.String.
    }
}

.NET Framework
Verfügbar seit 1.1
Portable Class Library
Unterstützt in: portable .NET platforms
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Zurück zum Anfang
Anzeigen:
© 2016 Microsoft