Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Esporta (0) Stampa
Espandi tutto

Metodo Type.GetInterface (String, Boolean)

Aggiornamento: novembre 2007

Quando è sottoposto a override in una classe derivata, cerca l'interfaccia specificata, indicando se la ricerca del nome dell'interfaccia viene eseguita senza fare distinzione tra maiuscole e minuscole.

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

public abstract Type GetInterface(
	string name,
	bool ignoreCase
)
public abstract Type GetInterface(
	String name,
	boolean ignoreCase
)
public abstract function GetInterface(
	name : String, 
	ignoreCase : boolean
) : Type

Parametri

name
Tipo: System.String
String contenente il nome dell'interfaccia da ottenere. Per le interfacce generiche, si tratta del nome alterato.
ignoreCase
Tipo: System.Boolean
true per ignorare la distinzione tra maiuscole e minuscole in quella parte di name che specifica il nome semplice dell'interfaccia. Nella parte in cui viene specificato lo spazio dei nomi è necessario fare distinzione tra maiuscole e minuscole.
-o-
false per eseguire una ricerca di tutte le parti di name facendo distinzione tra maiuscole e minuscole.

Valore restituito

Tipo: System.Type
Oggetto Type che rappresenta l'interfaccia con il nome specificato, implementata o ereditata dal Type corrente, se è stato trovato. In caso contrario, null.

Implementa

_Type.GetInterface(String, Boolean)

EccezioneCondizione
ArgumentNullException

nameè null.

AmbiguousMatchException

L'oggetto Type corrente rappresenta un tipo che implementa la stessa interfaccia generica con argomenti di tipo differenti.

Il parametro ignoreCase si applica solo al nome semplice dell'interfaccia, non allo spazio dei nomi. Nella parte di name che specifica lo spazio dei nomi è necessario fare distinzione tra maiuscole e minuscole, in caso contrario l'interfaccia non verrà trovata. Ad esempio, per trovare l'interfaccia IComparable, è possibile utilizzare la stringa "System.icomparable" ma non la stringa "system.icomparable".

Se l'oggetto Type corrente rappresenta un tipo generico costruito, questo metodo restituisce gli oggetti Type 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 vengono cercati i vincoli di interfaccia e tutte le interfacce ereditate dai vincoli di classe o di interfaccia.

tcctb9t8.alert_note(it-it,VS.90).gifNota:

Per le interfacce generiche, il parametro name corrisponde al nome alterato, che termina con un accento grave (`) e con il numero di parametri di tipo. Ciò vale sia per le definizioni di interfacce generiche che per le interfacce generiche costruite. Per trovare ad esempio IExample<T> (IExample(Of T) in Visual Basic) o IExample<string> (IExample(Of String) in Visual Basic), cercare "IExample`1".

Nell'esempio di codice seguente viene utilizzato il metodo GetInterface(String, Boolean) per eseguire una ricerca senza distinzione tra maiuscole e minuscole della classe Hashtable per l'interfaccia IEnumerable.

Nell'esempio vengono inoltre illustrati l'overload del metodo GetInterface(String) e il metodo GetInterfaceMap.

public static void Main()
{
    Hashtable hashtableObj = new Hashtable();
    Type objType = hashtableObj.GetType();
    MemberInfo[] arrayMemberInfo;
    MethodInfo[] arrayMethodInfo;
    try
    {   
        // Get the methods implemented in 'IDeserializationCallback' interface.
        arrayMethodInfo =objType.GetInterface("IDeserializationCallback").GetMethods();
        Console.WriteLine ("\nMethods of 'IDeserializationCallback' Interface :");
        for(int index=0;index < arrayMethodInfo.Length ;index++)
            Console.WriteLine (arrayMethodInfo[index].ToString() ); 

        // Get FullName for interface by using Ignore case search.
        Console.WriteLine ("\nMethods of 'IEnumerable' Interface");
        arrayMethodInfo = objType.GetInterface("ienumerable",true).GetMethods();
        for(int index=0;index < arrayMethodInfo.Length ;index++)
           Console.WriteLine (arrayMethodInfo[index].ToString()); 

        //Get the Interface methods for 'IDictionary' interface
        InterfaceMapping interfaceMappingObj;
        interfaceMappingObj = objType.GetInterfaceMap(typeof(IDictionary));
        arrayMemberInfo = interfaceMappingObj.InterfaceMethods;
        Console.WriteLine ("\nHashtable class Implements the following IDictionary Interface methods :");
        for(int index=0; index < arrayMemberInfo.Length; index++)
            Console.WriteLine (arrayMemberInfo[index].ToString() ); 
    }
    catch (Exception e)
    {
        Console.WriteLine ("Exception : " + e.ToString());            
    }                 
}


public static void main(String[] args)
{
    Hashtable hashtableObj = new Hashtable();
    Type objType = hashtableObj.GetType();
    MemberInfo arrayMemberInfo[];
    MethodInfo arrayMethodInfo[];
    try {
        // Get the methods implemented in 'IDeserializationCallback'
        // interface.
        arrayMethodInfo = objType.GetInterface("IDeserializationCallback").
            GetMethods();
        Console.WriteLine("\nMethods of 'IDeserializationCallback'"
            + " Interface :");
        for (int index = 0; index < arrayMethodInfo.length; index++) {
            Console.WriteLine(arrayMethodInfo.get_Item(index).ToString());
        }
        // Get FullName for interface by using Ignore case search.
        Console.WriteLine("\nMethods of 'IEnumerable' Interface");
        arrayMethodInfo = objType.GetInterface("ienumerable", true).
            GetMethods();
        for (int index = 0; index < arrayMethodInfo.length; index++) {
            Console.WriteLine(arrayMethodInfo.get_Item(index).ToString());
        }
        //Get the Interface methods for 'IDictionary' interface
        InterfaceMapping interfaceMappingObj;
        interfaceMappingObj =
            objType.GetInterfaceMap(IDictionary.class.ToType());
        arrayMemberInfo = interfaceMappingObj.InterfaceMethods;
        Console.WriteLine("\nHashtable class Implements the following"
            + " IDictionary Interface methods :");
        for (int index = 0; index < arrayMemberInfo.length; index++) {
            Console.WriteLine(arrayMemberInfo.get_Item(index).ToString());
        }
    }
    catch (System.Exception e) {
        Console.WriteLine("Exception : " + e.ToString());
    }
} //main


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition , Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework e .NET Compact Framework non supportano tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

.NET Framework

Supportato in: 3.5, 3.0, 2.0, 1.1, 1.0

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2015 Microsoft