Type.GetInterface Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een specifieke interface opgehaald die is geïmplementeerd of overgenomen door de huidige Type.
Overloads
| Name | Description |
|---|---|
| GetInterface(String, Boolean) |
Wanneer deze wordt overschreven in een afgeleide klasse, zoekt u naar de opgegeven interface en geeft u op of een hoofdlettergevoelige zoekopdracht moet worden uitgevoerd naar de interfacenaam. |
| GetInterface(String) |
Zoekt naar de interface met de opgegeven naam. |
GetInterface(String, Boolean)
Wanneer deze wordt overschreven in een afgeleide klasse, zoekt u naar de opgegeven interface en geeft u op of een hoofdlettergevoelige zoekopdracht moet worden uitgevoerd naar de interfacenaam.
public:
abstract Type ^ GetInterface(System::String ^ name, bool ignoreCase);
public abstract Type GetInterface(string name, bool ignoreCase);
abstract member GetInterface : string * bool -> Type
Public MustOverride Function GetInterface (name As String, ignoreCase As Boolean) As Type
Parameters
- name
- String
De tekenreeks met de naam van de interface die u wilt ophalen. Voor algemene interfaces is dit de naam van de mangled.
- ignoreCase
- Boolean
true om het geval van dat deel van name dat deel te negeren, geeft u de naam van de eenvoudige interface op (het deel dat de naamruimte opgeeft, moet correct worden gecased).
– of –
false om een hoofdlettergevoelige zoekopdracht uit te voeren voor alle onderdelen van name.
Retouren
Een object dat de interface vertegenwoordigt met de opgegeven naam, geïmplementeerd of overgenomen door de huidige Type, indien gevonden, nullanders.
Implementeringen
Uitzonderingen
name is null.
De huidige Type vertegenwoordigt een type dat dezelfde algemene interface met verschillende typeargumenten implementeert.
Voorbeelden
In het volgende codevoorbeeld wordt de GetInterface(String, Boolean) methode gebruikt om een hoofdlettergevoelige zoekopdracht van de Hashtable klasse voor de IEnumerable interface uit te voeren.
Het codevoorbeeld toont ook de overbelasting van de GetInterface(String) methode en de GetInterfaceMap methode.
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
Opmerkingen
De ignoreCase parameter is alleen van toepassing op de eenvoudige interfacenaam, niet op de naamruimte. Het gedeelte van name dat geeft de naamruimte moet het juiste hoofdlettergebruik hebben, of de interface wordt niet gevonden. De tekenreeks 'System.icomparable' vindt bijvoorbeeld de IComparable interface, maar de tekenreeks 'system.icomparable' niet.
Als de huidige Type een geconstrueerd generiek type vertegenwoordigt, retourneert deze methode de Type met typeparameters vervangen door de geschikte typeargumenten.
Als de huidige Type een typeparameter vertegenwoordigt in de definitie van een algemeen type of algemene methode, doorzoekt deze methode de interfacebeperkingen en eventuele interfaces die zijn overgenomen van klasse- of interfacebeperkingen.
Note
Voor algemene interfaces is de name parameter de naam van de mangled, eindigend met een grave accent (') en het aantal typeparameters. Dit geldt voor zowel algemene interfacedefinities als samengestelde algemene interfaces. Als u bijvoorbeeld IExample<T> (IExample(Of T) in Visual Basic) of IExample<string> (IExample(Of String) in Visual Basic) wilt zoeken, zoekt u naar "IExample`1".
Zie ook
Van toepassing op
GetInterface(String)
Zoekt naar de interface met de opgegeven naam.
public:
virtual Type ^ GetInterface(System::String ^ name);
public:
Type ^ GetInterface(System::String ^ name);
public Type GetInterface(string name);
abstract member GetInterface : string -> Type
override this.GetInterface : string -> Type
member this.GetInterface : string -> Type
Public Function GetInterface (name As String) As Type
Parameters
- name
- String
De tekenreeks met de naam van de interface die u wilt ophalen. Voor algemene interfaces is dit de naam van de mangled.
Retouren
Een object dat de interface vertegenwoordigt met de opgegeven naam, geïmplementeerd of overgenomen door de huidige Type, indien gevonden, nullanders.
Implementeringen
Uitzonderingen
name is null.
De huidige Type vertegenwoordigt een type dat dezelfde algemene interface met verschillende typeargumenten implementeert.
Voorbeelden
In het volgende codevoorbeeld wordt de GetInterface(String) methode gebruikt om de Hashtable klasse voor de IDeserializationCallback interface te doorzoeken en worden de methoden van de interface vermeld.
Het codevoorbeeld toont ook de overbelasting van de GetInterface(String, Boolean) methode en de GetInterfaceMap methode.
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
Opmerkingen
De zoekopdracht name is hoofdlettergevoelig.
Als de huidige Type een geconstrueerd generiek type vertegenwoordigt, retourneert deze methode de Type met typeparameters vervangen door de geschikte typeargumenten.
Als de huidige Type een typeparameter vertegenwoordigt in de definitie van een algemeen type of algemene methode, doorzoekt deze methode de interfacebeperkingen en eventuele interfaces die zijn overgenomen van klasse- of interfacebeperkingen.
Note
Voor algemene interfaces is de name parameter de naam van de mangled, eindigend met een grave accent (') en het aantal typeparameters. Dit geldt voor zowel algemene interfacedefinities als samengestelde algemene interfaces. Als u bijvoorbeeld IExample<T> (IExample(Of T) in Visual Basic) of IExample<string> (IExample(Of String) in Visual Basic) wilt zoeken, zoekt u naar "IExample`1".