System.Type.GetInterface 方法 (String)

方法描述

搜索具有指定名称的接口。

语法定义(C# System.Type.GetInterface 方法 (String) 的用法)

public Type GetInterface(
	string name
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
name System-String 包含要获取的接口名称的字符串。对于泛型接口,这是重整名称。
返回值 System.Type 表示具有指定名称且由当前的 Type 实现或继承的接口的对象(如果找到的话);否则为 null。

提示和注释

对 name 的搜索区分大小写。

如果当前 Type 表示构造泛型类型,则此方法将返回 Type,并且其类型形参替换为相应的类型实参。

如果当前 Type 表示泛型类型或泛型方法的定义中的类型参数,则此方法搜索接口约束以及从类或接口约束继承的所有接口。

注意

对于泛型接口,name 参数为改变后的名称,以抑音符 (`) 和类型参数的数目结尾。 泛型接口定义和构造泛型接口都是如此。 例如,为了查找 IExample(在 Visual Basic 中为 IExample(Of T))或 IExample(在 Visual Basic 中为 IExample(Of String)),可搜索 "IExample`1"。

System.Type.GetInterface 方法 (String)例子

该代码示例还演示 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());            
    }                 
}

异常

异常 异常描述
ArgumentNullException name 为 null。
AmbiguousMatchException 当前 Type 表示使用不同类型参数实现同一泛型接口的类型。

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。