Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo Type.GetMember (String, BindingFlags)

 

Data di pubblicazione: ottobre 2016

Cerca i membri specificati, usando i vincoli di binding specificati.

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

public virtual MemberInfo[] GetMember(
	string name,
	BindingFlags bindingAttr
)

Parametri

name
Type: System.String

Stringa che contiene il nome dei membri da ottenere.

bindingAttr
Type: System.Reflection.BindingFlags

Maschera di bit costituita da uno o più BindingFlags che consente di specificare le modalità di esecuzione della ricerca.

-oppure-

Zero, per restituire una matrice vuota.

Valore restituito

Type: System.Reflection.MemberInfo[]

Matrice di oggetti MemberInfo che rappresentano i membri pubblici con il nome specificato, se presenti; in caso contrario, matrice vuota.

Exception Condition
ArgumentNullException

name è null.

Questo metodo può essere sottoposto a override da una classe derivata.

I membri includere proprietà, metodi, campi, eventi e così via.

Il GetMember metodo non restituisce i membri in un ordine specifico, ad esempio in ordine alfabetico o ordine di dichiarazione. Il codice non deve dipendere dall'ordine in cui vengono restituiti i membri, perché tale ordine varia.

Le operazioni seguenti BindingFlags flag del filtro possono essere utilizzati per definire i membri da includere nella ricerca:

  • È necessario specificare BindingFlags.Instance o BindingFlags.Static per ottenere un risultato.

  • Specificare BindingFlags.Public per includere i membri pubblici nella ricerca.

  • Specificare BindingFlags.NonPublic per includere i membri non pubblici (ovvero, i membri privati, interni e protetti) nella ricerca.

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

Le operazioni seguenti BindingFlags flag di modifica consente di modificare le modalità di ricerca:

  • BindingFlags.IgnoreCaseper ignorare la distinzione di name.

  • BindingFlags.DeclaredOnlyPer cercare solo i membri dichiarati nel Type, non i membri sono stati ereditati.

Per altre informazioni, vedere System.Reflection.BindingFlags.

Per ottenere l'inizializzatore di classi (. cctor) tramite l'overload di questo metodo, è necessario specificare ". cctor" per name, e BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic) for bindingAttr. È inoltre possibile ottenere l'inizializzatore di classi tramite il TypeInitializer proprietà.

Se l'oggetto corrente Type rappresenta un tipo generico costruito, questo metodo restituisce il MemberInfo con i parametri di tipo sostituiti dagli argomenti di tipo appropriato.

Se l'oggetto corrente Type rappresenta un parametro di tipo nella definizione di un tipo generico o un metodo generico, questo metodo cerca i membri del vincolo di classe o i membri di Object se è presente alcun vincolo di classe.

System_CAPS_noteNota

Per i metodi generici, non includere gli argomenti di tipo in name. Ad esempio, il codice c# GetMember("MyMethod<int>") esegue la ricerca di un membro con il nome del testo "MyMethod<int>", anziché per un metodo denominato MyMethod che dispone di un argomento generico di tipo int.

Nell'esempio seguente consente di visualizzare tutti i membri statici pubblici del myString classe che iniziano con la lettera C.

public void GetPublicStaticMemberInfo()
{
    String myString = "GetMember_String_BindingFlag";
    Type myType = myString.GetType();
    // Get the public static members for the class myString starting with the letter C.
    MemberInfo[] myMembers = myType.GetMember("C*",
        BindingFlags.Public |BindingFlags.Static);
    if(myMembers.Length > 0)
    {
        Console.WriteLine("\nThe public static member(s) starting with the letter C for type {0}:", myType);
        for(int index=0; index < myMembers.Length; index++)
            Console.WriteLine("Member {0}: {1}", index + 1, myMembers[index].ToString());
    }
    else
        Console.WriteLine("No members match the search criteria.");    
}

.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: