Type.GetInterface Metod

Definition

Hämtar ett specifikt gränssnitt som implementeras eller ärvs av den aktuella Type.

Överlagringar

Name Description
GetInterface(String, Boolean)

När det åsidosättas i en härledd klass söker du efter det angivna gränssnittet och anger om du vill göra en skiftlägeskänslig sökning efter gränssnittsnamnet.

GetInterface(String)

Söker efter gränssnittet med det angivna namnet.

GetInterface(String, Boolean)

Källa:
Type.cs
Källa:
Type.cs
Källa:
Type.cs
Källa:
Type.cs
Källa:
Type.cs

När det åsidosättas i en härledd klass söker du efter det angivna gränssnittet och anger om du vill göra en skiftlägeskänslig sökning efter gränssnittsnamnet.

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

Parametrar

name
String

Strängen som innehåller namnet på gränssnittet som ska hämtas. För generiska gränssnitt är detta det manglade namnet.

ignoreCase
Boolean

true för att ignorera fallet med den delen av name som anger det enkla gränssnittsnamnet (den del som anger namnområdet måste vara korrekt skiftläge).

-eller-

false för att utföra en skiftlägeskänslig sökning efter alla delar av name.

Returer

Ett objekt som representerar gränssnittet med det angivna namnet, implementerat eller ärvt av den aktuella Type, om det hittas, annars null.

Implementeringar

Attribut

Undantag

name är null.

Den aktuella Type representerar en typ som implementerar samma allmänna gränssnitt med olika typargument.

Exempel

I följande kodexempel används GetInterface(String, Boolean) metoden för att utföra en skiftlägeskänslig sökning av Hashtable klassen för IEnumerable gränssnittet.

Kodexemplet GetInterface(String) visar även metodöverbelastningen GetInterfaceMap och metoden.

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

Kommentarer

Parametern ignoreCase gäller endast för det enkla gränssnittsnamnet, inte för namnområdet. Delen av name detta anger att namnområdet måste ha rätt skiftläge, annars hittas inte gränssnittet. Strängen "System.icomparable" hittar IComparable till exempel gränssnittet, men strängen "system.icomparable" gör det inte.

Om den aktuella Type representerar en konstruerad generisk typ returnerar den här metoden Type med typparametrarna ersatta av lämpliga typargument.

Om den aktuella Type representerar en typparameter i definitionen av en allmän typ eller allmän metod söker den här metoden igenom gränssnittsbegränsningarna och eventuella gränssnitt som ärvts från klass- eller gränssnittsbegränsningar.

Note

För generiska gränssnitt är parametern name det manglade namnet, som slutar med en allvarlig dekorfärg (') och antalet typparametrar. Detta gäller både för allmänna gränssnittsdefinitioner och konstruerade generiska gränssnitt. Om du till exempel vill hitta IExample<T> (IExample(Of T) i Visual Basic) eller IExample<string> (IExample(Of String) i Visual Basic) söker du efter "IExample`1".

Se även

Gäller för

GetInterface(String)

Källa:
Type.cs
Källa:
Type.cs
Källa:
Type.cs
Källa:
Type.cs
Källa:
Type.cs

Söker efter gränssnittet med det angivna namnet.

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

Parametrar

name
String

Strängen som innehåller namnet på gränssnittet som ska hämtas. För generiska gränssnitt är detta det manglade namnet.

Returer

Ett objekt som representerar gränssnittet med det angivna namnet, implementerat eller ärvt av den aktuella Type, om det hittas, annars null.

Implementeringar

Attribut

Undantag

name är null.

Den aktuella Type representerar en typ som implementerar samma allmänna gränssnitt med olika typargument.

Exempel

I följande kodexempel används GetInterface(String) metoden för att söka i Hashtable klassen efter IDeserializationCallback gränssnittet och visar en lista över metoderna i gränssnittet.

Kodexemplet GetInterface(String, Boolean) visar även metodöverbelastningen GetInterfaceMap och metoden.

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

Kommentarer

Sökningen efter name är skiftlägeskänslig.

Om den aktuella Type representerar en konstruerad generisk typ returnerar den här metoden Type med typparametrarna ersatta av lämpliga typargument.

Om den aktuella Type representerar en typparameter i definitionen av en allmän typ eller allmän metod söker den här metoden igenom gränssnittsbegränsningarna och eventuella gränssnitt som ärvts från klass- eller gränssnittsbegränsningar.

Note

För generiska gränssnitt är parametern name det manglade namnet, som slutar med en allvarlig dekorfärg (') och antalet typparametrar. Detta gäller både för allmänna gränssnittsdefinitioner och konstruerade generiska gränssnitt. Om du till exempel vill hitta IExample<T> (IExample(Of T) i Visual Basic) eller IExample<string> (IExample(Of String) i Visual Basic) söker du efter "IExample`1".

Se även

Gäller för