GetInterface Метод (String)
Свернуть оглавление
Развернуть оглавление
Данная статья переведена с помощью средств машинного перевода. Чтобы просмотреть ее на английском языке, установите флажок Английский. Вы также можете просматривать английский текст во всплывающем окне, наводя указатель мыши на переведенный текст.
Перевод
Английский

Type.GetInterface - метод (String)

 

Выполняет поиск интерфейса с заданным именем.

Пространство имен:   System
Сборка:  mscorlib (в mscorlib.dll)

public Type GetInterface(
	string name
)

Параметры

name

Строка, содержащая имя искомого интерфейса.Для универсальных интерфейсов это искаженное имя.

Возвращаемое значение

Type: System.Type

Объект, представляющий интерфейс с заданным именем, который реализуется или наследуется текущим объектом Type, если такой интерфейс существует; в противном случае — значение null.

Реализует

_Type.GetInterface(String)

Exception Condition
ArgumentNullException

Свойство name имеет значение null.

AmbiguousMatchException

Текущий Type представляет собой тип, реализующий тот же универсальный интерфейс с другими аргументами типа.

Поиск name учитывается регистр.

Если текущий Type представляет сконструированный универсальный тип, этот метод возвращает Type с параметрами типа, заменены соответствующими аргументами типа.

Если текущий Type представляет параметр типа в определении универсального типа или универсального метода, этот метод ищет ограничения интерфейса и все интерфейсы, унаследованные от класса или ограничений интерфейса.

System_CAPS_noteПримечание

Для универсальных интерфейсов name параметр является искаженное имя, заканчивающееся грависом (') и число параметров типа.Это справедливо как для определений универсального интерфейса и сконструированных универсальных интерфейсов.Например, чтобы найти IExample<T> (IExample(Of T) в Visual Basic) или IExample<string> (IExample(Of String) в Visual Basic), поиск "IExample`1".

В следующем примере кода GetInterface(String) метод для поиска Hashtable класса для IDeserializationCallback интерфейс и списки методов интерфейса.

В примере также показано GetInterface(String, Boolean) перегрузку метода и GetInterfaceMap метод.

public static void Main()
{
    Hashtable hashtableObj = new Hashtable();
    Type objType = hashtableObj.GetType();
    MemberInfo[] arrayMemberInfo;
    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].ToString() ); 

        // 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].ToString()); 

        //Get the Interface methods for 'IDictionary' interface
        InterfaceMapping interfaceMappingObj;
        interfaceMappingObj = objType.GetInterfaceMap(typeof(IDictionary));
        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].ToString() ); 
    }
    catch (Exception e)
    {
        Console.WriteLine ("Exception : " + e.ToString());            
    }                 
}

.NET Framework
Доступно с 1.1
Вернуться в начало
Показ:
© 2016 Microsoft