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, MemberTypes, BindingFlags)

 

Data di pubblicazione: ottobre 2016

Cerca i membri specificati del tipo di membro specificato usando i vincoli di binding specificati.

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

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

Parametri

name
Type: System.String

Stringa che contiene il nome dei membri da ottenere.

type
Type: System.Reflection.MemberTypes

Valore da cercare.

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.

NotSupportedException

Una classe derivata deve fornire un'implementazione.

Membri includono proprietà, metodi, campi, eventi e così via.

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

Nell'esempio BindingFlags flag del filtro può essere utilizzato 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 nella ricerca i membri non pubblici (ovvero, i membri privati, interni e protetti).

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

Nell'esempio BindingFlags flag di modifica consente di modificare le modalità di ricerca:

  • BindingFlags.IgnoreCase per ignorare la distinzione di name.

  • BindingFlags.DeclaredOnly Per 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 (con estensione cctor) tramite questo overload del metodo, è necessario specificare ". cctor" per name, MemberTypes.Constructor per type, e BindingFlags.Static | BindingFlags.NonPublic (BindingFlags.StaticOrBindingFlags.NonPublic in Visual Basic) per bindingAttr. È inoltre possibile ottenere l'inizializzatore di classi tramite il TypeInitializer proprietà.

Se l'oggetto 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 Type rappresenta un parametro di tipo nella definizione di un tipo generico o un metodo generico, questo metodo vengono cercati 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 includono 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é un metodo denominato MyMethod che dispone di un argomento generico di tipo int.

Nell'esempio seguente consente di visualizzare tutti i metodi della myString classe che iniziano con la lettera C.

    public void GetPublicInstanceMethodMemberInfo()
    {
        String myString = "GetMember_String_MemberType_BindingFlag";
        Type myType = myString.GetType();
        // Get the public instance methods for myString starting with the letter C.
        MemberInfo[] myMembers = myType.GetMember("C*", MemberTypes.Method, 
            BindingFlags.Public | BindingFlags.Instance);
        if(myMembers.Length > 0)
        {
            Console.WriteLine("\nThe public instance method(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
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: