System.Type.GetInterface 方法 (String, Boolean)

方法描述

当在派生类中重写时,搜索指定的接口,指定是否对接口名称执行不区分大小写的搜索。

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

public abstract Type GetInterface(
	string name,
	bool ignoreCase
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
name System-String 包含要获取的接口名称的字符串。对于泛型接口,这是重整名称。
ignoreCase System-Boolean true 表示对于 name(用来指定简单接口名称)中指定命名空间大小写必须正确的部分,忽略其大小写。- 或 -false 表示对 name 的所有部分执行区分大小写的搜索。
返回值 System.Type 表示具有指定名称且由当前的 Type 实现或继承的接口的对象(如果找到的话);否则为 null。

提示和注释

ignoreCase 参数仅适用于简单的接口名称,而不适用于命名空间。 name 中的某一部分,该部分指定命名空间的大小写必须正确,否则将找不到该接口。 例如,字符串“System.icomparable”能够找到 IComparable 接口,但是字符串“system.icomparable”找不到该接口。

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

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

注意

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

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

该代码示例还演示 GetInterface(String) 方法重载和 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 系统要求。