Ler en inglés

Compartir por


Type.GetInterface Método

Definición

Obtiene una interfaz específica implementada o heredada por el objeto Type actual.

Sobrecargas

GetInterface(String)

Busca la interfaz con el nombre especificado.

GetInterface(String, Boolean)

Cuando se invalida en una clase derivada, busca la interfaz especificada e indica si la búsqueda no debe distinguir entre mayúsculas y minúsculas para el nombre de la interfaz.

GetInterface(String)

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

Busca la interfaz con el nombre especificado.

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

Parámetros

name
String

Cadena que contiene el nombre de la interfaz que se va a obtener. Para las interfaces genéricas, este es el nombre con sufijo.

Devoluciones

Objeto que representa la interfaz con el nombre especificado, implementada o heredada por el objeto Type actual, si se encuentra; de lo contrario, null.

Implementaciones

Excepciones

name es null.

El Type actual representa un tipo que implementa la misma interfaz genérica con argumentos de tipo diferente.

Ejemplos

En el ejemplo de código siguiente se usa el GetInterface(String) método para buscar la Hashtable clase de la IDeserializationCallback interfaz y se enumeran los métodos de la interfaz .

El ejemplo de código también muestra la sobrecarga del GetInterface(String, Boolean) método y el 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());
    }
}

Comentarios

La búsqueda name distingue mayúsculas de minúsculas.

Si el objeto actual Type representa un tipo genérico construido, este método devuelve con Type los parámetros de tipo reemplazados por los argumentos de tipo adecuados.

Si el objeto actual Type representa un parámetro de tipo en la definición de un tipo genérico o un método genérico, este método busca en las restricciones de interfaz y las interfaces heredadas de las restricciones de clase o interfaz.

Nota

En el caso de las interfaces genéricas, el name parámetro es el nombre mangled, que termina con un acento grave (') y el número de parámetros de tipo. Esto se aplica tanto a las definiciones de interfaz genéricas como a las interfaces genéricas construidas. Por ejemplo, para buscar IExample<T> (IExample(Of T) en Visual Basic) o IExample<string> (IExample(Of String) en Visual Basic), busque "IExample`1".

Consulte también

Se aplica a

.NET 9 e outras versións
Produto Versións
.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

Cuando se invalida en una clase derivada, busca la interfaz especificada e indica si la búsqueda no debe distinguir entre mayúsculas y minúsculas para el nombre de la interfaz.

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

Parámetros

name
String

Cadena que contiene el nombre de la interfaz que se va a obtener. Para las interfaces genéricas, este es el nombre con sufijo.

ignoreCase
Boolean

true para omitir la grafía de la parte de name que especifica el nombre de interfaz simple (se debe respetar la grafía de la parte que especifica el espacio de nombres).

O bien

false para realizar una búsqueda de todas las partes de name que distinga mayúsculas de minúsculas.

Devoluciones

Objeto que representa la interfaz con el nombre especificado, implementada o heredada por el objeto Type actual, si se encuentra; de lo contrario, null.

Implementaciones

Excepciones

name es null.

El Type actual representa un tipo que implementa la misma interfaz genérica con argumentos de tipo diferente.

Ejemplos

En el ejemplo de código siguiente se usa el GetInterface(String, Boolean) método para realizar una búsqueda sin distinción entre mayúsculas y minúsculas de la Hashtable clase para la IEnumerable interfaz .

El ejemplo de código también muestra la sobrecarga del GetInterface(String) método y el 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());
    }
}

Comentarios

El ignoreCase parámetro solo se aplica al nombre de interfaz simple, no al espacio de nombres . La parte de que especifica el espacio de name nombres debe tener el caso correcto o no se encontrará la interfaz. Por ejemplo, la cadena "System.icomparable" busca la IComparable interfaz, pero la cadena "system.icomparable" no lo hace.

Si el objeto actual Type representa un tipo genérico construido, este método devuelve con Type los parámetros de tipo reemplazados por los argumentos de tipo adecuados.

Si el objeto actual Type representa un parámetro de tipo en la definición de un tipo genérico o un método genérico, este método busca en las restricciones de interfaz y las interfaces heredadas de las restricciones de clase o interfaz.

Nota

En el caso de las interfaces genéricas, el name parámetro es el nombre mangled, que termina con un acento grave (') y el número de parámetros de tipo. Esto se aplica tanto a las definiciones de interfaz genéricas como a las interfaces genéricas construidas. Por ejemplo, para buscar IExample<T> (IExample(Of T) en Visual Basic) o IExample<string> (IExample(Of String) en Visual Basic), busque "IExample`1".

Consulte también

Se aplica a

.NET 9 e outras versións
Produto Versións
.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