Lire en anglais

Partager via


Type.GetInterface Méthode

Définition

Obtient une interface spécifique implémentée ou héritée par le Type actuel.

Surcharges

GetInterface(String)

Recherche l'interface avec le nom spécifié.

GetInterface(String, Boolean)

En cas de substitution dans une classe dérivée, recherche l'interface spécifiée, en indiquant s'il faut faire une recherche qui ne respecte pas la casse pour le nom de l'interface.

GetInterface(String)

Source:
Type.cs
Source:
Type.cs
Source:
Type.cs

Recherche l'interface avec le nom spécifié.

C#
public Type? GetInterface (string name);
C#
public Type GetInterface (string name);

Paramètres

name
String

Chaîne contenant le nom de l'interface à obtenir. Pour les interfaces génériques, il s'agit du nom tronqué.

Retours

Objet qui représente l'interface ayant le nom spécifié, implémentée ou héritée par le Type actuel, s'il est trouvé ; sinon, null.

Implémente

Exceptions

name est null.

Le Type actuel représente un type qui implémente la même interface générique avec des arguments de type différents.

Exemples

L’exemple de code suivant utilise la GetInterface(String) méthode pour rechercher l’interface dans la HashtableIDeserializationCallback classe et répertorie les méthodes de l’interface.

L’exemple de code illustre également la surcharge de GetInterface(String, Boolean) méthode et la GetInterfaceMap méthode .

C#
public static void Main()
{
    Hashtable hashtableObj = new Hashtable();
    Type objType = hashtableObj.GetType();
    MethodInfo[] arrayMethodInfo;
    MemberInfo[] arrayMemberInfo;
    try
    {
        // Get the methods implemented in 'IDeserializationCallback' interface.
        arrayMethodInfo =objType.GetInterface("IDeserializationCallback").GetMethods();
        Console.WriteLine ("\nMethods of 'IDeserializationCallback' Interface :");
        foreach(MethodInfo methodInfo in arrayMethodInfo)
            Console.WriteLine (methodInfo);

        // Get FullName for interface by using Ignore case search.
        Console.WriteLine ("\nMethods of 'IEnumerable' Interface");
        arrayMethodInfo = objType.GetInterface("ienumerable",true).GetMethods();
        foreach(MethodInfo methodInfo in arrayMethodInfo)
           Console.WriteLine (methodInfo);

        //Get the Interface methods for 'IDictionary' interface
        InterfaceMapping interfaceMappingOb = objType.GetInterfaceMap(typeof(IDictionary));
        arrayMemberInfo = interfaceMappingObj.InterfaceMethods;
        Console.WriteLine ("\nHashtable class Implements the following IDictionary Interface methods :");
        foreach(MemberInfo memberInfo in arrayMemberInfo)
           Console.WriteLine (memberInfo);
    }
    catch (Exception e)
    {
        Console.WriteLine ("Exception : " + e.ToString());
    }
}

Remarques

La recherche respecte name la casse.

Si le courant Type représente un type générique construit, cette méthode retourne le Type avec les paramètres de type remplacés par les arguments de type appropriés.

Si le actuel Type représente un paramètre de type dans la définition d’un type générique ou d’une méthode générique, cette méthode recherche les contraintes d’interface et toutes les interfaces héritées des contraintes de classe ou d’interface.

Notes

Pour les interfaces génériques, le name paramètre est le nom mutilé, se terminant par un accent grave (') et le nombre de paramètres de type. Cela s’applique à la fois aux définitions d’interface génériques et aux interfaces génériques construites. Par exemple, pour rechercher IExample<T> (IExample(Of T) en Visual Basic) ou IExample<string> (IExample(Of String) en Visual Basic), recherchez "IExample`1".

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

GetInterface(String, Boolean)

Source:
Type.cs
Source:
Type.cs
Source:
Type.cs

En cas de substitution dans une classe dérivée, recherche l'interface spécifiée, en indiquant s'il faut faire une recherche qui ne respecte pas la casse pour le nom de l'interface.

C#
public abstract Type? GetInterface (string name, bool ignoreCase);
C#
public abstract Type GetInterface (string name, bool ignoreCase);

Paramètres

name
String

Chaîne contenant le nom de l'interface à obtenir. Pour les interfaces génériques, il s'agit du nom tronqué.

ignoreCase
Boolean

true pour ignorer la casse de cette partie de name qui spécifie le nom d'interface simple (la casse de la partie qui spécifie l'espace de noms doit être respectée).

- ou -

false pour effectuer une recherche qui respecte la casse de toutes les parties de name.

Retours

Objet qui représente l'interface ayant le nom spécifié, implémentée ou héritée par le Type actuel, s'il est trouvé ; sinon, null.

Implémente

Exceptions

name est null.

Le Type actuel représente un type qui implémente la même interface générique avec des arguments de type différents.

Exemples

L’exemple de code suivant utilise la GetInterface(String, Boolean) méthode pour effectuer une recherche sans respect de la casse de la Hashtable classe pour l’interface IEnumerable .

L’exemple de code illustre également la surcharge de GetInterface(String) méthode et la GetInterfaceMap méthode .

C#
public static void Main()
{
    Hashtable hashtableObj = new Hashtable();
    Type objType = hashtableObj.GetType();
    MethodInfo[] arrayMethodInfo;
    MemberInfo[] arrayMemberInfo;
    try
    {
        // Get the methods implemented in 'IDeserializationCallback' interface.
        arrayMethodInfo =objType.GetInterface("IDeserializationCallback").GetMethods();
        Console.WriteLine ("\nMethods of 'IDeserializationCallback' Interface :");
        foreach(MethodInfo methodInfo in arrayMethodInfo)
            Console.WriteLine (methodInfo);

        // Get FullName for interface by using Ignore case search.
        Console.WriteLine ("\nMethods of 'IEnumerable' Interface");
        arrayMethodInfo = objType.GetInterface("ienumerable",true).GetMethods();
        foreach(MethodInfo methodInfo in arrayMethodInfo)
           Console.WriteLine (methodInfo);

        //Get the Interface methods for 'IDictionary' interface
        InterfaceMapping interfaceMappingOb = objType.GetInterfaceMap(typeof(IDictionary));
        arrayMemberInfo = interfaceMappingObj.InterfaceMethods;
        Console.WriteLine ("\nHashtable class Implements the following IDictionary Interface methods :");
        foreach(MemberInfo memberInfo in arrayMemberInfo)
           Console.WriteLine (memberInfo);
    }
    catch (Exception e)
    {
        Console.WriteLine ("Exception : " + e.ToString());
    }
}

Remarques

Le ignoreCase paramètre s’applique uniquement au nom de l’interface simple, pas à l’espace de noms. La partie de name qui spécifie l’espace de noms doit avoir la casse correcte, sinon l’interface est introuvable. Par exemple, la chaîne « System.icomparable » recherche l’interface IComparable , mais pas la chaîne « system.icomparable ».

Si le courant Type représente un type générique construit, cette méthode retourne le Type avec les paramètres de type remplacés par les arguments de type appropriés.

Si le actuel Type représente un paramètre de type dans la définition d’un type générique ou d’une méthode générique, cette méthode recherche les contraintes d’interface et toutes les interfaces héritées des contraintes de classe ou d’interface.

Notes

Pour les interfaces génériques, le name paramètre est le nom mutilé, se terminant par un accent grave (') et le nombre de paramètres de type. Cela s’applique à la fois aux définitions d’interface génériques et aux interfaces génériques construites. Par exemple, pour rechercher IExample<T> (IExample(Of T) en Visual Basic) ou IExample<string> (IExample(Of String) en Visual Basic), recherchez "IExample`1".

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1