Ler em inglês

Compartilhar via


Type.GetInterface Método

Definição

Obtém uma interface específica implementada ou herdada pelo Type atual.

Sobrecargas

GetInterface(String)

Pesquisa a interface com o nome especificado.

GetInterface(String, Boolean)

Quando substituído em uma classe derivada, procura pela interface especificada, indicando se deseja fazer uma pesquisa que não diferencia maiúsculas de minúsculas pelo nome da interface.

GetInterface(String)

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Pesquisa a interface com o nome especificado.

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

Parâmetros

name
String

A cadeia de caracteres que contém o nome da interface a ser obtida. Para interfaces genéricas, este é o nome danificado.

Retornos

Um objeto que representa a interface com o nome especificado, implementado ou herdado pelo Type atual, se encontrado; caso contrário, null.

Implementações

Exceções

name é null.

O Type atual representa um tipo que implementa a mesma interface genérica com argumentos de tipo diferente.

Exemplos

O exemplo de código a seguir usa o GetInterface(String) método para pesquisar a Hashtable classe para a IDeserializationCallback interface e lista os métodos da interface.

O exemplo de código também demonstra a sobrecarga do GetInterface(String, Boolean) método e o GetInterfaceMap método .

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());
    }
}

Comentários

A pesquisa de name diferencia maiúsculas de minúsculas.

Caso o Type atual represente um tipo genérico construído, este método retorna o Type com os parâmetros de tipo substituídos pelos argumentos de tipo apropriados.

Se o atual Type representar um parâmetro de tipo na definição de um tipo genérico ou método genérico, esse método pesquisará as restrições de interface e quaisquer interfaces herdadas de restrições de classe ou interface.

Observação

Para interfaces genéricas, o name parâmetro é o nome mutilado, terminando com um acento grave (') e o número de parâmetros de tipo. Isso é verdadeiro para definições de interface genéricas e interfaces genéricas construídas. Por exemplo, para localizar IExample<T> (IExample(Of T) no Visual Basic) ou IExample<string> (IExample(Of String) no Visual Basic), pesquise por "IExample`1".

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.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)

Origem:
Type.cs
Origem:
Type.cs
Origem:
Type.cs

Quando substituído em uma classe derivada, procura pela interface especificada, indicando se deseja fazer uma pesquisa que não diferencia maiúsculas de minúsculas pelo nome da interface.

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

Parâmetros

name
String

A cadeia de caracteres que contém o nome da interface a ser obtida. Para interfaces genéricas, este é o nome danificado.

ignoreCase
Boolean

true para ignorar a diferença entre maiúsculas e minúsculas dessa parte de name que especifica o nome da interface simples (a parte que especifica se o namespace deve diferenciar maiúsculas e minúsculas corretamente).

- ou -

false para realizar uma pesquisa que diferencia maiúsculas de minúsculas para todas as partes de name.

Retornos

Um objeto que representa a interface com o nome especificado, implementado ou herdado pelo Type atual, se encontrado; caso contrário, null.

Implementações

Exceções

name é null.

O Type atual representa um tipo que implementa a mesma interface genérica com argumentos de tipo diferente.

Exemplos

O exemplo de código a seguir usa o GetInterface(String, Boolean) método para executar uma pesquisa que não diferencia maiúsculas de minúsculas da Hashtable classe para a IEnumerable interface.

O exemplo de código também demonstra a sobrecarga do GetInterface(String) método e o GetInterfaceMap método .

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());
    }
}

Comentários

O ignoreCase parâmetro se aplica somente ao nome da interface simples, não ao namespace. A parte do name que especifica o namespace deve ter o caso correto ou a interface não será encontrada. Por exemplo, a cadeia de caracteres "System.icomparable" localiza a IComparable interface, mas a cadeia de caracteres "system.icomparable" não.

Caso o Type atual represente um tipo genérico construído, este método retorna o Type com os parâmetros de tipo substituídos pelos argumentos de tipo apropriados.

Se o atual Type representar um parâmetro de tipo na definição de um tipo genérico ou método genérico, esse método pesquisará as restrições de interface e quaisquer interfaces herdadas de restrições de classe ou interface.

Observação

Para interfaces genéricas, o name parâmetro é o nome mutilado, terminando com um acento grave (') e o número de parâmetros de tipo. Isso é verdadeiro para definições de interface genéricas e interfaces genéricas construídas. Por exemplo, para localizar IExample<T> (IExample(Of T) no Visual Basic) ou IExample<string> (IExample(Of String) no Visual Basic), pesquise por "IExample`1".

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.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