Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo Type.GetProperties (BindingFlags)

Quando è sottoposto a override in una classe derivata, cerca le proprietà del Type corrente, utilizzando i vincoli di associazione specificati.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

public abstract PropertyInfo[] GetProperties(
	BindingFlags bindingAttr
)

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.
- oppure -
Zero, per restituire null.

Valore restituito

Tipo: System.Reflection.PropertyInfo[]
Matrice di oggetti PropertyInfo che rappresenta tutte le proprietà del Type corrente corrispondenti ai vincoli di associazione specificati.
- oppure -
Matrice vuota di tipo PropertyInfo, se il Type corrente non dispone di proprietà oppure se nessuna delle proprietà corrisponde ai vincoli di associazione.

Implementa

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

Una proprietà viene considerata pubblica per la reflection se possiede almeno una funzione di accesso pubblica. In caso contrario, la proprietà viene considerata privata ed è necessario utilizzare BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (in Visual Basic, combinare i valori utilizzando Or) per ottenerlo.

Il metodo GetProperties non restituisce le proprietà in un ordine particolare, ad esempio l'ordine alfabetico o di dichiarazione. Il codice non deve dipendere dall'ordine in cui le proprietà vengono restituite perché tale ordine varia.

È possibile utilizzare i seguenti flag di filtro BindingFlags per definire i tipi annidati da includere nella ricerca:

  • Per ottenere un risultato è necessario specificare BindingFlags.Instance o BindingFlags.Static.

  • Specificare BindingFlags.Public per includere le proprietà pubbliche nella ricerca.

  • Specificare BindingFlags.NonPublic per includere nella ricerca proprietà non pubbliche, ovvero proprietà private, interne e protette. Vengono restituite solo le proprietà protette e le proprietà interne delle classi base; le proprietà private delle classi base non vengono restituite.

  • Specificare BindingFlags.FlattenHierarchy per includere i membri statici public e protected nella gerarchia; i membri statici private nelle classi ereditate non sono inclusi.

È possibile utilizzare i seguenti flag di modifica BindingFlags per modificare le modalità di esecuzione della ricerca:

  • BindingFlags.DeclaredOnly per cercare solo le proprietà dichiarate su Type e non quelle semplicemente ereditate.

Per ulteriori informazioni, vedere System.Reflection.BindingFlags.

Una proprietà viene considerata pubblica per la reflection se possiede almeno una funzione di accesso pubblica. In caso contrario, la proprietà viene considerata privata ed è necessario utilizzare BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static (in Visual Basic, combinare i valori utilizzando Or) per ottenerlo.

Se l'oggetto T:System.Type corrente rappresenta un tipo generico costruito, questo metodo restituisce gli oggetti PropertyInfo con i parametri di tipo sostituiti dagli argomenti di tipo appropriati.

Se l'oggetto Type corrente rappresenta un parametro di tipo nella definizione di un tipo o di un metodo generico, mediante questo metodo verranno cercate le proprietà del vincolo di classe.

Nell'esempio riportato di seguito vengono create due proprietà pubbliche e una proprietà protetta; vengono inoltre visualizzate informazioni relative alle proprietà corrispondenti ai vincoli di associazione specificati.



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

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Phone

Supportato 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 (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.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft