Condividi tramite


Type.GetInterface Metodo

Definizione

Ottiene un'interfaccia specifica implementata o ereditata dall'oggetto corrente Type.

Overload

Nome Descrizione
GetInterface(String, Boolean)

In caso di override in una classe derivata, cerca l'interfaccia specificata, specificando se eseguire una ricerca senza distinzione tra maiuscole e minuscole per il nome dell'interfaccia.

GetInterface(String)

Cerca l'interfaccia con il nome specificato.

GetInterface(String, Boolean)

Origine:
Type.cs
Origine:
Type.cs
Origine:
Type.cs
Origine:
Type.cs
Origine:
Type.cs

In caso di override in una classe derivata, cerca l'interfaccia specificata, specificando se eseguire una ricerca senza distinzione tra maiuscole e minuscole per il nome dell'interfaccia.

public:
 abstract Type ^ GetInterface(System::String ^ name, bool ignoreCase);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.Interfaces)]
public abstract Type? GetInterface(string name, bool ignoreCase);
public abstract Type? GetInterface(string name, bool ignoreCase);
public abstract Type GetInterface(string name, bool ignoreCase);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.Interfaces)>]
abstract member GetInterface : string * bool -> Type
abstract member GetInterface : string * bool -> Type
Public MustOverride Function GetInterface (name As String, ignoreCase As Boolean) As Type

Parametri

name
String

Stringa contenente il nome dell'interfaccia da ottenere. Per le interfacce generiche, si tratta del nome mangled.

ignoreCase
Boolean

true per ignorare il caso di quella parte di che specifica il nome dell'interfaccia name semplice (la parte che specifica lo spazio dei nomi deve essere maiuscola correttamente).

oppure

false per eseguire una ricerca con distinzione tra maiuscole e minuscole per tutte le parti di name.

Valori restituiti

Oggetto che rappresenta l'interfaccia con il nome specificato, implementato o ereditato dall'oggetto corrente Type, se trovato; in caso contrario, null.

Implementazioni

Attributi

Eccezioni

name è null.

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

Esempio

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

L'esempio di codice illustra anche l'overload del GetInterface(String) metodo e il GetInterfaceMap metodo .

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());
    }
}
let hashtableObj = Hashtable()
let objType = hashtableObj.GetType()
try
    // Get the methods implemented in 'IDeserializationCallback' interface.
    let arrayMethodInfo = objType.GetInterface("IDeserializationCallback").GetMethods()
    printfn "\nMethods of 'IDeserializationCallback' Interface :"
    for methodInfo in arrayMethodInfo do
        printfn $"{methodInfo}"

    // Get FullName for interface by using Ignore case search.
    printfn "\nMethods of 'IEnumerable' Interface"
    let arrayMethodInfo = objType.GetInterface("ienumerable",true).GetMethods()
    for methodInfo in arrayMethodInfo do
        printfn $"{methodInfo}"

    //Get the Interface methods for 'IDictionary' interface
    let interfaceMappingObj = objType.GetInterfaceMap typeof<IDictionary>
    let arrayMemberInfo = interfaceMappingObj.InterfaceMethods
    printfn "\nHashtable class Implements the following IDictionary Interface methods :"
    for memberInfo in arrayMemberInfo do
        printfn $"{memberInfo}"
with e ->
    printfn $"Exception : {e}"
   Public Shared Sub Main()
      Dim hashtableObj As New Hashtable()
      Dim objType As Type = hashtableObj.GetType()
      Dim arrayMemberInfo() As MemberInfo
      Dim arrayMethodInfo() As MethodInfo
      Try
         ' Get the methods implemented in 'IDeserializationCallback' interface.
         arrayMethodInfo = objType.GetInterface("IDeserializationCallback").GetMethods()
         Console.WriteLine(ControlChars.Cr + "Methods of 'IDeserializationCallback' Interface :")
         Dim index As Integer
         For index = 0 To arrayMethodInfo.Length - 1
            Console.WriteLine(arrayMethodInfo(index).ToString())
         Next index
         ' Get FullName for interface by using Ignore case search.
         Console.WriteLine(ControlChars.Cr + "Methods of 'IEnumerable' Interface")
         arrayMethodInfo = objType.GetInterface("ienumerable", True).GetMethods()
         For index = 0 To arrayMethodInfo.Length - 1
            Console.WriteLine(arrayMethodInfo(index).ToString())
         Next index
         'Get the Interface methods for 'IDictionary' interface
         Dim interfaceMappingObj As InterfaceMapping
         interfaceMappingObj = objType.GetInterfaceMap(GetType(IDictionary))
         arrayMemberInfo = interfaceMappingObj.InterfaceMethods
         Console.WriteLine(ControlChars.Cr + "Hashtable class Implements the following IDictionary Interface methods :")
         For index = 0 To arrayMemberInfo.Length - 1
            Console.WriteLine(arrayMemberInfo(index).ToString())
         Next index
      Catch e As Exception
         Console.WriteLine(("Exception : " + e.ToString()))
      End Try
   End Sub
End Class

Commenti

Il ignoreCase parametro si applica solo al nome dell'interfaccia semplice, non allo spazio dei nomi . La parte di name che specifica lo spazio dei nomi deve avere la distinzione tra maiuscole e minuscole corrette oppure l'interfaccia non verrà trovata. Ad esempio, la stringa "System.icomparable" trova l'interfaccia IComparable , ma la stringa "system.icomparable" non lo fa.

Se l'oggetto corrente Type rappresenta un tipo generico costruito, questo metodo restituisce Type con i parametri di tipo sostituiti dagli argomenti di tipo appropriati.

Se l'oggetto corrente Type rappresenta un parametro di tipo nella definizione di un tipo generico o di un metodo generico, questo metodo cerca i vincoli di interfaccia ed eventuali interfacce ereditate da vincoli di classe o interfaccia.

Annotazioni

Per le interfacce generiche, il name parametro è il nome mangled, che termina con un accento grave (') e il numero di parametri di tipo. Questo vale sia per le definizioni di interfaccia generiche che per le interfacce generiche costruite. Ad esempio, per trovare IExample<T> (IExample(Of T) in Visual Basic) o IExample<string> (IExample(Of String) in Visual Basic), cercare "IExample`1".

Vedi anche

Si applica a

GetInterface(String)

Origine:
Type.cs
Origine:
Type.cs
Origine:
Type.cs
Origine:
Type.cs
Origine:
Type.cs

Cerca l'interfaccia con il nome specificato.

public:
 Type ^ GetInterface(System::String ^ name);
public:
 virtual Type ^ GetInterface(System::String ^ name);
[System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.Interfaces)]
public Type? GetInterface(string name);
public Type? GetInterface(string name);
public Type GetInterface(string name);
[<System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembers(System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes.Interfaces)>]
member this.GetInterface : string -> Type
member this.GetInterface : string -> Type
abstract member GetInterface : string -> Type
override this.GetInterface : string -> Type
Public Function GetInterface (name As String) As Type

Parametri

name
String

Stringa contenente il nome dell'interfaccia da ottenere. Per le interfacce generiche, si tratta del nome mangled.

Valori restituiti

Oggetto che rappresenta l'interfaccia con il nome specificato, implementato o ereditato dall'oggetto corrente Type, se trovato; in caso contrario, null.

Implementazioni

Attributi

Eccezioni

name è null.

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

Esempio

Nell'esempio di codice seguente viene usato il GetInterface(String) metodo per cercare l'interfaccia HashtableIDeserializationCallback nella classe e vengono elencati i metodi dell'interfaccia .

L'esempio di codice illustra anche l'overload del GetInterface(String, Boolean) metodo e il GetInterfaceMap metodo .

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());
    }
}
let hashtableObj = Hashtable()
let objType = hashtableObj.GetType()
try
    // Get the methods implemented in 'IDeserializationCallback' interface.
    let arrayMethodInfo = objType.GetInterface("IDeserializationCallback").GetMethods()
    printfn "\nMethods of 'IDeserializationCallback' Interface :"
    for methodInfo in arrayMethodInfo do
        printfn $"{methodInfo}"

    // Get FullName for interface by using Ignore case search.
    printfn "\nMethods of 'IEnumerable' Interface"
    let arrayMethodInfo = objType.GetInterface("ienumerable",true).GetMethods()
    for methodInfo in arrayMethodInfo do
        printfn $"{methodInfo}"

    //Get the Interface methods for 'IDictionary' interface
    let interfaceMappingObj = objType.GetInterfaceMap typeof<IDictionary>
    let arrayMemberInfo = interfaceMappingObj.InterfaceMethods
    printfn "\nHashtable class Implements the following IDictionary Interface methods :"
    for memberInfo in arrayMemberInfo do
        printfn $"{memberInfo}"
with e ->
    printfn $"Exception : {e}"
   Public Shared Sub Main()
      Dim hashtableObj As New Hashtable()
      Dim objType As Type = hashtableObj.GetType()
      Dim arrayMemberInfo() As MemberInfo
      Dim arrayMethodInfo() As MethodInfo
      Try
         ' Get the methods implemented in 'IDeserializationCallback' interface.
         arrayMethodInfo = objType.GetInterface("IDeserializationCallback").GetMethods()
         Console.WriteLine(ControlChars.Cr + "Methods of 'IDeserializationCallback' Interface :")
         Dim index As Integer
         For index = 0 To arrayMethodInfo.Length - 1
            Console.WriteLine(arrayMethodInfo(index).ToString())
         Next index
         ' Get FullName for interface by using Ignore case search.
         Console.WriteLine(ControlChars.Cr + "Methods of 'IEnumerable' Interface")
         arrayMethodInfo = objType.GetInterface("ienumerable", True).GetMethods()
         For index = 0 To arrayMethodInfo.Length - 1
            Console.WriteLine(arrayMethodInfo(index).ToString())
         Next index
         'Get the Interface methods for 'IDictionary' interface
         Dim interfaceMappingObj As InterfaceMapping
         interfaceMappingObj = objType.GetInterfaceMap(GetType(IDictionary))
         arrayMemberInfo = interfaceMappingObj.InterfaceMethods
         Console.WriteLine(ControlChars.Cr + "Hashtable class Implements the following IDictionary Interface methods :")
         For index = 0 To arrayMemberInfo.Length - 1
            Console.WriteLine(arrayMemberInfo(index).ToString())
         Next index
      Catch e As Exception
         Console.WriteLine(("Exception : " + e.ToString()))
      End Try
   End Sub
End Class

Commenti

La ricerca name fa distinzione tra maiuscole e minuscole.

Se l'oggetto corrente Type rappresenta un tipo generico costruito, questo metodo restituisce Type con i parametri di tipo sostituiti dagli argomenti di tipo appropriati.

Se l'oggetto corrente Type rappresenta un parametro di tipo nella definizione di un tipo generico o di un metodo generico, questo metodo cerca i vincoli di interfaccia ed eventuali interfacce ereditate da vincoli di classe o interfaccia.

Annotazioni

Per le interfacce generiche, il name parametro è il nome mangled, che termina con un accento grave (') e il numero di parametri di tipo. Questo vale sia per le definizioni di interfaccia generiche che per le interfacce generiche costruite. Ad esempio, per trovare IExample<T> (IExample(Of T) in Visual Basic) o IExample<string> (IExample(Of String) in Visual Basic), cercare "IExample`1".

Vedi anche

Si applica a