Type::GetInterface Method (String^)
Searches for the interface with the specified name.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- name
-
Type:
System::String^
The string containing the name of the interface to get. For generic interfaces, this is the mangled name.
Return Value
Type: System::Type^An object representing the interface with the specified name, implemented or inherited by the current Type, if found; otherwise, null.
Implements
_Type::GetInterface(String^)| Exception | Condition |
|---|---|
| ArgumentNullException | name is null. |
| AmbiguousMatchException | The current Type represents a type that implements the same generic interface with different type arguments. |
The search for name is case-sensitive.
If the current Type represents a constructed generic type, this method returns the Type with the type parameters replaced by the appropriate type arguments.
If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the interface constraints and any interfaces inherited from class or interface constraints.
Note |
|---|
For generic interfaces, the name parameter is the mangled name, ending with a grave accent (`) and the number of type parameters. This is true for both generic interface definitions and constructed generic interfaces. For example, to find IExample<T> (IExample(Of T) in Visual Basic) or IExample<string> (IExample(Of String) in Visual Basic), search for "IExample`1". |
The following code example uses the GetInterface(String^) method to search the Hashtable class for the IDeserializationCallback interface, and lists the methods of the interface.
The code example also demonstrates the GetInterface(String^, Boolean) method overload and the GetInterfaceMap method.
int main() { Hashtable^ hashtableObj = gcnew Hashtable; Type^ objType = hashtableObj->GetType(); array<MemberInfo^>^arrayMemberInfo; array<MethodInfo^>^arrayMethodInfo; try { // Get the methods implemented in 'IDeserializationCallback' interface. arrayMethodInfo = objType->GetInterface( "IDeserializationCallback" )->GetMethods(); Console::WriteLine( "\nMethods of 'IDeserializationCallback' Interface :" ); for ( int index = 0; index < arrayMethodInfo->Length; index++ ) Console::WriteLine( arrayMethodInfo[ index ] ); // Get FullName for interface by using Ignore case search. Console::WriteLine( "\nMethods of 'IEnumerable' Interface" ); arrayMethodInfo = objType->GetInterface( "ienumerable", true )->GetMethods(); for ( int index = 0; index < arrayMethodInfo->Length; index++ ) Console::WriteLine( arrayMethodInfo[ index ] ); //Get the Interface methods for 'IDictionary*' interface InterfaceMapping interfaceMappingObj; interfaceMappingObj = objType->GetInterfaceMap( IDictionary::typeid ); arrayMemberInfo = interfaceMappingObj.InterfaceMethods; Console::WriteLine( "\nHashtable class Implements the following IDictionary Interface methods :" ); for ( int index = 0; index < arrayMemberInfo->Length; index++ ) Console::WriteLine( arrayMemberInfo[ index ] ); } catch ( Exception^ e ) { Console::WriteLine( "Exception : {0}", e ); } }
Available since 1.1
