#region 程序集 mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.6.1mscorlib.dll
#endregion
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security;
namespace System
{
//
// 摘要:
// 表示类型声明:类类型、接口类型、数组类型、值类型、枚举类型、类型参数、泛型类型定义,以及开放或封闭构造的泛型类型。 若要浏览此类型的 .NET Framework
// 源代码,请参阅引用源。
[ClassInterface(ClassInterfaceType.None)]
[ComDefaultInterfaceAttribute(typeof(_Type))]
[ComVisible(true)]
public abstract class Type : MemberInfo, _Type, IReflect
{
//
// 摘要:
// 表示用在特性上的成员筛选器。 此字段为只读。
public static readonly MemberFilter FilterAttribute;
//
// 摘要:
// 表示用于名称的区分大小写的成员筛选器。 此字段为只读。
public static readonly MemberFilter FilterName;
//
// 摘要:
// 表示用于名称的不区分大小写的成员筛选器。 此字段为只读。
public static readonly MemberFilter FilterNameIgnoreCase;
//
// 摘要:
// 表示 System.Type 信息中的缺少值。 此字段为只读。
public static readonly object Missing;
//
// 摘要:
// 分隔 System.Type 的命名空间中的名称。 此字段为只读。
public static readonly char Delimiter;
//
// 摘要:
// 表示 System.Type 类型的空数组。 此字段为只读。
public static readonly Type[] EmptyTypes;
//
// 摘要:
// 初始化 System.Type 类的新实例。
protected Type();
//
// 摘要:
// 获取默认联编程序的引用,该程序实现的内部规则用于选择由 System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[])
// 调用的合适成员。
//
// 返回结果:
// 系统使用的默认联编程序的引用。
public static Binder DefaultBinder { get; }
//
// 摘要:
// 获取描述当前泛型类型参数的协变和特殊约束的 System.Reflection.GenericParameterAttributes 标志。
//
// 返回结果:
// System.Reflection.GenericParameterAttributes 值的按位组合,用于描述当前泛型类型参数的协变和特殊约束。
//
// 异常:
// T:System.InvalidOperationException:
// 当前 System.Type 对象不是泛型类型参数。 也就是说,System.Type.IsGenericParameter 属性将返回 false。
//
// T:System.NotSupportedException:
// 基类不支持调用的方法。
public virtual GenericParameterAttributes GenericParameterAttributes { get; }
//
// 摘要:
// 获取一个指示 System.Type 是否可由程序集之外的代码访问的值。
//
// 返回结果:
// 如果当前 true 是公共类型或公共嵌套类型从而使所有封闭类型都是公共类型,则为 System.Type;否则为 false。
public bool IsVisible { get; }
//
// 摘要:
// 获取一个值,该值指示 System.Type 是否声明为公共类型。
//
// 返回结果:
// 如果 true 未声明为公共类型且不是嵌套类型,则为 System.Type;否则为 false。
public bool IsNotPublic { get; }
//
// 摘要:
// 获取一个值,该值指示 System.Type 是否声明为公共类型。
//
// 返回结果:
// 如果 true 声明为公共类型且不是嵌套类型,则为 System.Type;否则为 false。
public bool IsPublic { get; }
//
// 摘要:
// 获取一个值,通过该值指示类是否是嵌套的并且声明为公共的。
//
// 返回结果:
// 如果类是嵌套的并且声明为公共的,则为 true;否则为 false。
public bool IsNestedPublic { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否是嵌套的并且只能在它自己的程序集内可见。
//
// 返回结果:
// 如果 true 是嵌套的并且仅在它自己的程序集中可见,则为 System.Type;否则为 false。
public bool IsNestedAssembly { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否是嵌套的并且只能在它自己的家族内可见。
//
// 返回结果:
// 如果 true 是嵌套的并且仅在它自己的家族中可见,则为 System.Type;否则为 false。
public bool IsNestedFamily { get; }
//
// 摘要:
// 获取与 System.Type 关联的属性。
//
// 返回结果:
// 表示 System.Reflection.TypeAttributes 的属性集的 System.Type 对象,除非 System.Type 表示泛型类型形参,在此情况下该值未指定。
public TypeAttributes Attributes { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否是嵌套的并且只对同时属于自己家族和自己程序集的类可见。
//
// 返回结果:
// 如果 true 是嵌套的并且只对同时属于它自己的家族和它自己的程序集的类可见,则为 System.Type;否则为 false。
public bool IsNestedFamANDAssem { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否是嵌套的并且只对属于它自己的家族或属于它自己的程序集的类可见。
//
// 返回结果:
// 如果 true 是嵌套的并且只对属于它自己的家族或属于它自己的程序集的类可见,则为 System.Type;否则为 false。
public bool IsNestedFamORAssem { get; }
//
// 摘要:
// 获取指示当前类型的字段是否由公共语言运行时自动放置的值。
//
// 返回结果:
// 如果当前类型的 true 属性包括 System.Type.Attributes,则为 System.Reflection.TypeAttributes.AutoLayout;否则为
// false。
public bool IsAutoLayout { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否是嵌套的并声明为私有。
//
// 返回结果:
// 如果 true 是嵌套的并声明为私有,则为 System.Type;否则为 false。
public bool IsNestedPrivate { get; }
//
// 摘要:
// 获取一个指示当前 System.Type 对象是否表示其定义嵌套在另一个类型的定义之内的类型的值。
//
// 返回结果:
// 如果 true 嵌套在另一个类型内,则为 System.Type;否则为 false。
public bool IsNested { get; }
//
// 摘要:
// 获取 System.Type 的命名空间。
//
// 返回结果:
// System.Type 的命名空间;如果当前实例没有命名空间或表示泛型参数,则为 null。
public abstract string Namespace { get; }
//
// 摘要:
// 获取当前 System.Type 直接从中继承的类型。
//
// 返回结果:
// 当前 System.Type 直接从中继承的 System.Type;或者如果当前 null 表示 Type 类或一个接口,则为 System.Object。
public abstract Type BaseType { get; }
//
// 摘要:
// 获取类型的程序集限定名,其中包括从中加载 System.Type 的程序集的名称。
//
// 返回结果:
// System.Type 的程序集限定名,其中包括从中加载 System.Type 的程序集的名称;或者为 null(如果当前实例表示泛型类型参数)。
public abstract string AssemblyQualifiedName { get; }
//
// 摘要:
// 获取指示当前类型的字段是否按顺序(定义顺序或发送到元数据的顺序)放置的值。
//
// 返回结果:
// 如果当前类型的 true 属性包括 System.Type.Attributes,则为 System.Reflection.TypeAttributes.SequentialLayout;否则为
// false。
public bool IsLayoutSequential { get; }
//
// 摘要:
// 获取该类型的完全限定名称,包括其命名空间,但不包括程序集。
//
// 返回结果:
// 该类型的完全限定名,包括其命名空间,但不包括程序集;如果当前实例表示泛型类型参数、数组类型、指针类型或基于类型参数的 null 类型,或表示不属于泛型类型定义但包含无法解析的类型参数的泛型类型,则为
// byref。
public abstract string FullName { get; }
//
// 摘要:
// 获取当前 System.Type 的句柄。
//
// 返回结果:
// 当前 System.Type 的句柄。
//
// 异常:
// T:System.NotSupportedException:
// .NET Compact Framework 当前不支持此属性。
public virtual RuntimeTypeHandle TypeHandle { get; }
//
// 摘要:
// 获取在其中声明该类型的 System.Reflection.Assembly。 对于泛型类型,则获取在其中定义该泛型类型的 System.Reflection.Assembly。
//
// 返回结果:
// 描述包含当前类型的程序集的 System.Reflection.Assembly 实例。 对于泛型类型,该实例描述包含泛型类型定义的程序集,而不是创建和使用特定构造类型的程序集。
public abstract Assembly Assembly { get; }
//
// 摘要:
// 获取在其中定义当前 System.Type 的模块 (DLL)。
//
// 返回结果:
// 在其中定义当前 System.Type 的模块。
public abstract Module Module { get; }
//
// 摘要:
// 获取与 System.Type 关联的 GUID。
//
// 返回结果:
// 获取与 System.Type 关联的 GUID。
public abstract Guid GUID { get; }
//
// 摘要:
// 获取一个描述当前类型的布局的 System.Runtime.InteropServices.StructLayoutAttribute。
//
// 返回结果:
// 获取一个描述当前类型的大致布局特性的 System.Runtime.InteropServices.StructLayoutAttribute。
//
// 异常:
// T:System.NotSupportedException:
// 基类不支持调用的方法。
public virtual StructLayoutAttribute StructLayoutAttribute { get; }
//
// 摘要:
// 获取用于获取该成员的类对象。
//
// 返回结果:
// Type 对象,通过它获取了此 System.Type 对象。
public override Type ReflectedType { get; }
//
// 摘要:
// 获取一个表示声明方法的 System.Reflection.MethodBase(如果当前 System.Type 表示泛型方法的一个类型参数)。
//
// 返回结果:
// 如果当前 System.Type 表示泛型方法的一个类型参数,则为一个表示声明方法的 System.Reflection.MethodBase;否则为 null。
public virtual MethodBase DeclaringMethod { get; }
//
// 摘要:
// 获取用来声明当前的嵌套类型或泛型类型参数的类型。
//
// 返回结果:
// 如果当前的类型是嵌套类型,则为表示封闭类型的 System.Type 对象;如果当前的类型是泛型类型的类型参数,则为泛型类型的定义;如果当前的类型是泛型方法的类型参数,则为用来声明泛型方法的类型;否则为
// null。
public override Type DeclaringType { get; }
//
// 摘要:
// 获取该类型的初始值设定项。
//
// 返回结果:
// 包含 System.Type 的类构造函数的名称的对象。
[ComVisible(true)]
public ConstructorInfo TypeInitializer { get; }
//
// 摘要:
// 获取指示当前类型的字段是否放置在显式指定的偏移量处的值。
//
// 返回结果:
// 如果当前类型的 true 属性包括 System.Type.Attributes,则为 System.Reflection.TypeAttributes.ExplicitLayout;否则为
// false。
public bool IsExplicitLayout { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否为值类型。
//
// 返回结果:
// 如果 true 是值类型,则为 System.Type;否则为 false。
public bool IsValueType { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否是一个接口;即,不是类或值类型。
//
// 返回结果:
// 如果 true 是接口,则为 System.Type;否则为 false。
public bool IsInterface { get; }
//
// 摘要:
// 获取一个值,该值指示当前类型在当前信任级别上是否是安全可靠关键的;即它是否可以执行关键操作并可以由透明代码访问。
//
// 返回结果:
// 如果当前类型在当前信任级别上是安全可靠关键的,则为 true;如果它是安全关键的或透明的,则为 false。
public virtual bool IsSecuritySafeCritical { get; }
//
// 摘要:
// 获取一个值,该值指示当前的类型在当前信任级别上是安全关键的还是安全可靠关键的,并因此可以执行关键操作。
//
// 返回结果:
// 如果当前类型在当前信任级别上是安全关键的或安全可靠关键的,则为 true;如果它是透明的,则为 false。
public virtual bool IsSecurityCritical { get; }
//
// 摘要:
// 获取此类型泛型类型参数的数组。
//
// 返回结果:
// 此类型的泛型类型参数的数组。
public virtual Type[] GenericTypeArguments { get; }
//
// 摘要:
// 获取一个值,该值指示 System.Type 是否按引用进行封送。
//
// 返回结果:
// 如果 true 是由引用封送的,则为 System.Type;否则为 false。
public bool IsMarshalByRef { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 在上下文中是否可以被承载。
//
// 返回结果:
// 如果 true 能够在某个上下文中承载,则为 System.Type;否则为 false。
public bool IsContextful { get; }
//
// 摘要:
// 获取一个值,通过该值指示当前 System.Type 是包含还是引用另一类型,即当前 System.Type 是数组、指针还是通过引用传递。
//
// 返回结果:
// 如果 true 为数组、指针或按引用传递,则为 System.Type;否则为 false。
public bool HasElementType { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否为 COM 对象。
//
// 返回结果:
// 如果 true 为 COM 对象,则为 System.Type;否则为 false。
public bool IsCOMObject { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否为基元类型之一。
//
// 返回结果:
// 如果 true 为基元类型之一,则为 System.Type;否则为 false。
public bool IsPrimitive { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否为指针。
//
// 返回结果:
// 如果 true 是指针,则为 System.Type;否则为 false。
public bool IsPointer { get; }
//
// 摘要:
// 获取一个值,该值指示 System.Type 是否由引用传递。
//
// 返回结果:
// 如果 true 按引用传递,则为 System.Type;否则为 false。
public bool IsByRef { get; }
//
// 摘要:
// 获取一个值,该值指示当前 System.Type 对象是否具有尚未被特定类型替代的类型参数。
//
// 返回结果:
// 如果 true 对象本身是泛型类型形参或者具有尚未提供特定类型的类型形参,则为 System.Type;否则为 false。
public virtual bool ContainsGenericParameters { get; }
//
// 摘要:
// 当 System.Type 对象表示泛型类型或泛型方法的类型参数时,获取类型参数在声明它的泛型类型或方法的类型参数列表中的位置。
//
// 返回结果:
// 类型参数在定义它的泛型类型或方法的类型参数列表中的位置。 位置编号从 0 开始。
//
// 异常:
// T:System.InvalidOperationException:
// 当前的类型不表示类型参数。 也就是说,System.Type.IsGenericParameter 返回 false。
public virtual int GenericParameterPosition { get; }
//
// 摘要:
// 获取一个值,该值指示当前 System.Type 是否表示泛型类型或方法的定义中的类型参数。
//
// 返回结果:
// 如果 true 对象表示泛型类型定义或泛型方法定义的类型参数,则为 System.Type;否则为 false。
public virtual bool IsGenericParameter { get; }
//
// 摘要:
// 获取指示此对象是否表示构造的泛型类型的值。 你可以创建构造型泛型类型的实例。
//
// 返回结果:
// 如果此对象表示构造泛型类型,则为 true;否则为 false。
public virtual bool IsConstructedGenericType { get; }
//
// 摘要:
// 获取一个值,该值指示当前 System.Type 是否表示可以用来构造其他泛型类型的泛型类型定义。
//
// 返回结果:
// 如果此 true 对象表示泛型类型定义,则为 System.Type;否则为 false。
public virtual bool IsGenericTypeDefinition { get; }
//
// 摘要:
// 获取一个值,该值指示当前类型是否是泛型类型。
//
// 返回结果:
// 如果当前类型是泛型类型,则为 true;否则为 false。
public virtual bool IsGenericType { get; }
//
// 摘要:
// 获取一个值,该值指示类型是否为数组。
//
// 返回结果:
// 如果当前类型是数组,则为 true;否则为 false。
public bool IsArray { get; }
//
// 摘要:
// 获取一个值,该值指示是否为 AutoClass 选择了字符串格式属性 System.Type。
//
// 返回结果:
// 如果为 true 选择了字符串格式属性 AutoClass,则为 System.Type;否则为 false。
public bool IsAutoClass { get; }
//
// 摘要:
// 获取一个值,该值指示是否为 UnicodeClass 选择了字符串格式属性 System.Type。
//
// 返回结果:
// 如果为 true 选择了字符串格式属性 UnicodeClass,则为 System.Type;否则为 false。
public bool IsUnicodeClass { get; }
//
// 摘要:
// 获取一个值,该值指示是否为 AnsiClass 选择了字符串格式属性 System.Type。
//
// 返回结果:
// 如果为 true 选择了字符串格式属性 AnsiClass,则为 System.Type;否则为 false。
public bool IsAnsiClass { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否为可序列化的。
//
// 返回结果:
// 如果 true 是可序列化的,则为 System.Type;否则为 false。
public virtual bool IsSerializable { get; }
//
// 摘要:
// 获取一个值,该值指示 System.Type 是否应用了 System.Runtime.InteropServices.ComImportAttribute
// 属性,如果应用了该属性,则表示它是从 COM 类型库导入的。
//
// 返回结果:
// 如果 true 具有 System.Type,则为 System.Runtime.InteropServices.ComImportAttribute;否则为
// false。
public bool IsImport { get; }
//
// 摘要:
// 获取一个值,该值指示该类型是否具有需要特殊处理的名称。
//
// 返回结果:
// 如果该类型具有需要特殊处理的名称,则为 true;否则为 false。
public bool IsSpecialName { get; }
//
// 摘要:
// 获取一个值,该值指示当前的 System.Type 是否表示枚举。
//
// 返回结果:
// 如果当前 true 表示枚举,则为 System.Type;否则为 false。
public virtual bool IsEnum { get; }
//
// 摘要:
// 获取一个值,该值指示 System.Type 是否声明为密封的。
//
// 返回结果:
// 如果 true 被声明为密封的,则为 System.Type;否则为 false。
public bool IsSealed { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否为抽象的并且必须被重写。
//
// 返回结果:
// 如果 true 是抽象的,则为 System.Type;否则为 false。
public bool IsAbstract { get; }
//
// 摘要:
// 获取一个指示此成员是类型还是嵌套类型的 System.Reflection.MemberTypes 值。
//
// 返回结果:
// 一个 System.Reflection.MemberTypes 值,指示此成员是类型还是嵌套类型。
public override MemberTypes MemberType { get; }
//
// 摘要:
// 获取一个值,通过该值指示 System.Type 是否是一个类或委托;即,不是值类型或接口。
//
// 返回结果:
// 如果 true 是类,则为 System.Type;否则为 false。
public bool IsClass { get; }
//
// 摘要:
// 获取一个值,该值指示当前类型在当前信任级别上是否是透明的而无法执行关键操作。
//
// 返回结果:
// 如果该类型在当前信任级别上是安全透明的,则为 true;否则为 false。
public virtual bool IsSecurityTransparent { get; }
//
// 摘要:
// 指示表示该类型的公共语言运行时提供的类型。
//
// 返回结果:
// System.Type 的基础系统类型。
public abstract Type UnderlyingSystemType { get; }
//
// 摘要:
// 获取具有指定名称的 System.Type,执行区分大小写的搜索。
//
// 参数:
// typeName:
// 要获取的类型的程序集限定名称。 请参阅System.Type.AssemblyQualifiedName。 如果该类型位于当前正在执行的程序集中或者 Mscorlib.dll
// 中,则提供由命名空间限定的类型名称就足够了。
//
// 返回结果:
// 具有指定名称的类型(如果找到的话);否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// typeName 为 null。
//
// T:System.Reflection.TargetInvocationException:
// 调用了类初始值设定项,且该项引发了异常。
//
// T:System.ArgumentException:
// typeName 表示将指针类型、ByRef 类型或 System.Void 作为其类型参数之一的泛型类型。 - 或 - typeName 表示具有错误的类型参数数目的泛型类型。
// - 或 - typeName 表示泛型参数,且其中的一个类型参数不满足相应类型参数的约束。
//
// T:System.TypeLoadException:
// typeName 表示 System.TypedReference 的数组。
//
// T:System.IO.FileLoadException:
// 在 .NET for Windows Store apps 或 可移植类库, ,捕获该基类异常, System.IO.IOException, ,而不是。
// 找到了程序集或其依赖项之一,但无法加载它们。
//
// T:System.BadImageFormatException:
// 程序集或其依赖项之一无效。 - 或 - 当前加载的是公共语言运行时 2.0 版或更高版本,而程序集使用更高的版本编译。
public static Type GetType(string typeName);
//
// 摘要:
// 获取具有指定名称的类型,指定是否执行区分大小写的搜索,在找不到类型时是否引发异常,(可选)提供自定义方法以解析程序集和该类型。
//
// 参数:
// typeName:
// 要获取的类型的名称。 如果提供了 typeResolver 参数,则类型名称可以为 typeResolver 能够解析的任何字符串。 如果提供了 assemblyResolver
// 参数,或者使用了标准类型解析,则除非该类型位于当前正在执行的程序集或 Mscorlib.dll 中(在这种情况下足以提供其命名空间所限定的类型名称),否则
// typeName 必须为程序集限定的名称(请参见 System.Type.AssemblyQualifiedName)。
//
// assemblyResolver:
// 一个方法,它定位并返回 typeName 中指定的程序集。 以 assemblyResolver 对象形式传递给 System.Reflection.AssemblyName
// 的程序集名称。 如果 typeName 不包含程序集的名称,则不调用 assemblyResolver。 如果未提供 assemblyResolver,则执行标准程序集解析。
// 警告 不要通过未知的或不受信任的调用方传递方法。 此操作可能会导致恶意代码特权提升。 仅使用你提供或者熟悉的方法。
//
// typeResolver:
// 一个方法,它在由 typeName 或标准程序集解析返回的程序集中定位并返回 assemblyResolver 所指定的类型。 如果未提供任何程序集,则该方法可以提供一个程序集。
// 该方法还采用一个参数以指定是否执行不区分大小写的搜索;ignoreCase 的值传递给该参数。 警告 不要通过未知的或不受信任的调用方传递方法。
//
// throwOnError:
// 如果为 true,则在找不到该类型时引发异常;如果为 false,则返回 null。 指定 false 还会取消某些其他异常条件,但并不取消所有条件。 请参见“异常”部分。
//
// ignoreCase:
// 对 true 执行的搜索不区分大小写,则为 typeName;对 false 执行的搜索区分大小写,则为 typeName。
//
// 返回结果:
// 具有指定名称的类型。 如果找不到该类型,则 throwOnError 参数指定是返回 null 还是引发异常。 在某些情况下,将引发异常,而不考虑 throwOnError
// 的值。 请参见“异常”部分。
//
// 异常:
// T:System.ArgumentNullException:
// typeName 为 null。
//
// T:System.Reflection.TargetInvocationException:
// 调用了类初始值设定项,且该项引发了异常。
//
// T:System.TypeLoadException:
// throwOnError 是 true,且找不到该类型。 - 或 - throwOnError 的值为 true,且 typeName 包含无效字符,例如嵌入的制表符。
// - 或 - throwOnError 的值为 true,且 typeName 为空字符串。 - 或 - throwOnError 的值为 true,且 typeName
// 表示大小无效的数组类型。 - 或 - typeName 表示 System.TypedReference 的数组。
//
// T:System.ArgumentException:
// 当 typeName 解析为类型名称和程序集名称时(例如,当简单类型名称包含未转义的特殊字符时),发生错误。 - 或 - throwOnError 是 true,且
// typeName 包含无效的语法(例如 "MyType[,*,]")。 - 或 - typeName 表示将指针类型、ByRef 类型或 System.Void
// 作为其类型参数之一的泛型类型。 - 或 - typeName 表示具有错误的类型参数数目的泛型类型。 - 或 - typeName 表示泛型类型,并且其类型参数之一不满足相应类型参数的约束。
//
// T:System.IO.FileNotFoundException:
// throwOnError 的值为 true,且未找到程序集或程序集的某个依赖项。
//
// T:System.IO.FileLoadException:
// 已找到该程序集或其依赖项之一,但无法加载。 - 或 - typeName 包含无效的程序集名称。 - 或 - typeName 是一个有效的程序集名称,不包含类型名称。
//
// T:System.BadImageFormatException:
// 该程序集或其依赖项之一无效。 - 或 - 此程序集使用高于当前所加载版本的公共语言运行时版本编译而成。
public static Type GetType(string typeName, Func<AssemblyName, Assembly> assemblyResolver, Func<Assembly, string, bool, Type> typeResolver, bool throwOnError, bool ignoreCase);
//
// 摘要:
// 获取具有指定名称的类型,指定在找不到该类型时是否引发异常,(可选)提供自定义方法以解析程序集和该类型。
//
// 参数:
// typeName:
// 要获取的类型的名称。 如果提供了 typeResolver 参数,则类型名称可以为 typeResolver 能够解析的任何字符串。 如果提供了 assemblyResolver
// 参数,或者使用了标准类型解析,则除非该类型位于当前正在执行的程序集或 Mscorlib.dll 中(在这种情况下足以提供其命名空间所限定的类型名称),否则
// typeName 必须为程序集限定的名称(请参见 System.Type.AssemblyQualifiedName)。
//
// assemblyResolver:
// 一个方法,它定位并返回 typeName 中指定的程序集。 以 assemblyResolver 对象形式传递给 System.Reflection.AssemblyName
// 的程序集名称。 如果 typeName 不包含程序集的名称,则不调用 assemblyResolver。 如果未提供 assemblyResolver,则执行标准程序集解析。
// 警告 不要通过未知的或不受信任的调用方传递方法。 此操作可能会导致恶意代码特权提升。 仅使用你提供或者熟悉的方法。
//
// typeResolver:
// 一个方法,它在由 typeName 或标准程序集解析返回的程序集中定位并返回 assemblyResolver 所指定的类型。 如果未提供任何程序集,则该方法可以提供一个程序集。
// 该方法还采用一个参数以指定是否执行不区分大小写的搜索;false 传递给该参数。 警告 不要通过未知的或不受信任的调用方传递方法。
//
// throwOnError:
// 如果为 true,则在找不到该类型时引发异常;如果为 false,则返回 null。 指定 false 还会取消某些其他异常条件,但并不取消所有条件。 请参见“异常”部分。
//
// 返回结果:
// 具有指定名称的类型。 如果找不到该类型,则 throwOnError 参数指定是返回 null 还是引发异常。 在某些情况下,将引发异常,而不考虑 throwOnError
// 的值。 请参见“异常”部分。
//
// 异常:
// T:System.ArgumentNullException:
// typeName 为 null。
//
// T:System.Reflection.TargetInvocationException:
// 调用了类初始值设定项,且该项引发了异常。
//
// T:System.TypeLoadException:
// throwOnError 是 true,且找不到该类型。 - 或 - throwOnError 的值为 true,且 typeName 包含无效字符,例如嵌入的制表符。
// - 或 - throwOnError 的值为 true,且 typeName 为空字符串。 - 或 - throwOnError 的值为 true,且 typeName
// 表示大小无效的数组类型。 - 或 - typeName 表示 System.TypedReference 的数组。
//
// T:System.ArgumentException:
// 当 typeName 解析为类型名称和程序集名称时(例如,当简单类型名称包含未转义的特殊字符时),发生错误。 - 或 - throwOnError 是 true,且
// typeName 包含无效的语法(例如 "MyType[,*,]")。 - 或 - typeName 表示将指针类型、ByRef 类型或 System.Void
// 作为其类型参数之一的泛型类型。 - 或 - typeName 表示具有错误的类型参数数目的泛型类型。 - 或 - typeName 表示泛型类型,并且其类型参数之一不满足相应类型参数的约束。
//
// T:System.IO.FileNotFoundException:
// throwOnError 是 true,且未找到程序集或其依赖项之一。 - 或 - typeName 包含无效的程序集名称。 - 或 - typeName
// 是一个不含类型名称的有效程序集名称。
//
// T:System.IO.FileLoadException:
// 找到了程序集或它的一个依赖项,但无法加载它们。
//
// T:System.BadImageFormatException:
// 程序集或其依赖项之一无效。 - 或 - 此程序集使用高于当前所加载版本的公共语言运行时版本编译而成。
public static Type GetType(string typeName, Func<AssemblyName, Assembly> assemblyResolver, Func<Assembly, string, bool, Type> typeResolver, bool throwOnError);
//
// 摘要:
// 获取具有指定名称的类型,(可选)提供自定义方法以解析程序集和该类型。
//
// 参数:
// typeName:
// 要获取的类型的名称。 如果提供了 typeResolver 参数,则类型名称可以为 typeResolver 能够解析的任何字符串。 如果提供了 assemblyResolver
// 参数,或者使用了标准类型解析,则除非该类型位于当前正在执行的程序集或 Mscorlib.dll 中(在这种情况下足以提供其命名空间所限定的类型名称),否则
// typeName 必须为程序集限定的名称(请参见 System.Type.AssemblyQualifiedName)。
//
// assemblyResolver:
// 一个方法,它定位并返回 typeName 中指定的程序集。 以 assemblyResolver 对象形式传递给 System.Reflection.AssemblyName
// 的程序集名称。 如果 typeName 不包含程序集的名称,则不调用 assemblyResolver。 如果未提供 assemblyResolver,则执行标准程序集解析。
// 警告 不要通过未知的或不受信任的调用方传递方法。 此操作可能会导致恶意代码特权提升。 仅使用你提供或者熟悉的方法。
//
// typeResolver:
// 一个方法,它在由 typeName 或标准程序集解析返回的程序集中定位并返回 assemblyResolver 所指定的类型。 如果未提供任何程序集,则
// typeResolver 方法可以提供一个程序集。 该方法还采用一个参数以指定是否执行不区分大小写的搜索;false 传递给该参数。 警告 不要通过未知的或不受信任的调用方传递方法。
//
// 返回结果:
// 具有指定名称的类型,如果未找到该类型,则返回 null。
//
// 异常:
// T:System.ArgumentNullException:
// typeName 为 null。
//
// T:System.Reflection.TargetInvocationException:
// 调用了类初始值设定项,且该项引发了异常。
//
// T:System.ArgumentException:
// 当 typeName 解析为类型名称和程序集名称时(例如,当简单类型名称包含未转义的特殊字符时),发生错误。 - 或 - typeName 表示将指针类型、ByRef
// 类型或 System.Void 作为其类型参数之一的泛型类型。 - 或 - typeName 表示具有错误的类型参数数目的泛型类型。 - 或 - typeName
// 表示泛型参数,且其中的一个类型参数不满足相应类型参数的约束。
//
// T:System.TypeLoadException:
// typeName 表示 System.TypedReference 的数组。
//
// T:System.IO.FileLoadException:
// 找到了程序集或它的一个依赖项,但无法加载它们。 - 或 - typeName 包含无效的程序集名称。 - 或 - typeName 是一个有效的程序集名称,不包含类型名称。
//
// T:System.BadImageFormatException:
// 该程序集或其依赖项之一无效。 - 或 - 此程序集使用高于当前所加载版本的公共语言运行时版本编译而成。
public static Type GetType(string typeName, Func<AssemblyName, Assembly> assemblyResolver, Func<Assembly, string, bool, Type> typeResolver);
//
// 摘要:
// 获取具有指定名称的 System.Type,指定是否执行区分大小写的搜索,以及在找不到类型时是否引发异常。
//
// 参数:
// typeName:
// 要获取的类型的程序集限定名称。 请参阅System.Type.AssemblyQualifiedName。 如果该类型位于当前正在执行的程序集中或者 Mscorlib.dll
// 中,则提供由命名空间限定的类型名称就足够了。
//
// throwOnError:
// 如果为 true,则在找不到该类型时引发异常;如果为 false,则返回 null。 指定 false 还会取消某些其他异常条件,但并不取消所有条件。 请参见“异常”部分。
//
// 返回结果:
// 具有指定名称的类型。 如果找不到该类型,则 throwOnError 参数指定是返回 null 还是引发异常。 在某些情况下,将引发异常,而不考虑 throwOnError
// 的值。 请参见“异常”部分。
//
// 异常:
// T:System.ArgumentNullException:
// typeName 为 null。
//
// T:System.Reflection.TargetInvocationException:
// 调用了类初始值设定项,且该项引发了异常。
//
// T:System.TypeLoadException:
// throwOnError 是 true,且找不到该类型。 - 或 - throwOnError 是 true,且 typeName 包含无效字符,例如嵌入的选项卡。
// - 或 - throwOnError 是 true,且 typeName 为空字符串。 - 或 - throwOnError 是 true,且 typeName
// 表示大小无效的数组类型。 - 或 - typeName 表示 System.TypedReference 的数组。
//
// T:System.ArgumentException:
// throwOnError 是 true,且 typeName 包含无效的语法。 例如:"MyType[,*,]"。 - 或 - typeName 表示将指针类型、ByRef
// 类型或 System.Void 作为其类型参数之一的泛型类型。 - 或 - typeName 表示具有错误的类型参数数目的泛型类型。 - 或 - typeName
// 表示泛型类型,并且其类型参数之一不满足相应类型参数的约束。
//
// T:System.IO.FileNotFoundException:
// throwOnError 是 true 并且未找到程序集或其依赖项之一。
//
// T:System.IO.FileLoadException:
// 在适用于 Windows 应用商店应用的 .NET 或可移植类库中,改为捕获基类异常 System.IO.IOException。 找到了程序集或其依赖项之一,但无法加载它们。
//
// T:System.BadImageFormatException:
// 程序集或其依赖项之一无效。 - 或 - 当前加载的是公共语言运行时 2.0 版或更高版本,而程序集使用更高的版本编译。
public static Type GetType(string typeName, bool throwOnError);
//
// 摘要:
// 获取具有指定名称的 System.Type,指定是否执行区分大小写的搜索,以及在找不到类型时是否引发异常。
//
// 参数:
// typeName:
// 要获取的类型的程序集限定名称。 请参阅System.Type.AssemblyQualifiedName。 如果该类型位于当前正在执行的程序集中或者 Mscorlib.dll
// 中,则提供由命名空间限定的类型名称就足够了。
//
// throwOnError:
// true 则引发异常(如果找不到类型);false 则返回 null.Specifying false,也抑制了其他一些异常情况,但不是所有异常。 请参见“异常”部分。
//
// ignoreCase:
// 对 true 执行的搜索不区分大小写,则为 typeName;对 false 执行的搜索区分大小写,则为 typeName。
//
// 返回结果:
// 具有指定名称的类型。 如果找不到该类型,则 throwOnError 参数指定是返回 null 还是引发异常。 在某些情况下,将引发异常,而不考虑 throwOnError
// 的值。 请参见“异常”部分。
//
// 异常:
// T:System.ArgumentNullException:
// typeName 为 null。
//
// T:System.Reflection.TargetInvocationException:
// 调用了类初始值设定项,且该项引发了异常。
//
// T:System.TypeLoadException:
// throwOnError 是 true,且找不到该类型。 - 或 - throwOnError 的值为 true,且 typeName 包含无效字符,例如嵌入的制表符。
// - 或 - throwOnError 的值为 true,且 typeName 为空字符串。 - 或 - throwOnError 的值为 true,且 typeName
// 表示大小无效的数组类型。 - 或 - typeName 表示 System.TypedReference 的数组。
//
// T:System.ArgumentException:
// throwOnError 是 true,且 typeName 包含无效的语法。 例如:"MyType[,*,]"。 - 或 - typeName 表示将指针类型、ByRef
// 类型或 System.Void 作为其类型参数之一的泛型类型。 - 或 - typeName 表示具有错误的类型参数数目的泛型类型。 - 或 - typeName
// 表示泛型类型,并且其类型参数之一不满足相应类型参数的约束。
//
// T:System.IO.FileNotFoundException:
// throwOnError 的值为 true,且未找到程序集或程序集的某个依赖项。
//
// T:System.IO.FileLoadException:
// 找到了程序集或其依赖项之一,但无法加载它们。
//
// T:System.BadImageFormatException:
// 程序集或其依赖项之一无效。 - 或 - 当前加载的是公共语言运行时 2.0 版或更高版本,而程序集使用更高的版本编译。
public static Type GetType(string typeName, bool throwOnError, bool ignoreCase);
//
// 摘要:
// 获取指定数组中对象的类型。
//
// 参数:
// args:
// 要确定其类型的对象数组。
//
// 返回结果:
// 表示 System.Type 中相应元素的类型的 args 对象数组。
//
// 异常:
// T:System.ArgumentNullException:
// args 为 null。 - 或 - args 的其中一个或多个元素为 null。
//
// T:System.Reflection.TargetInvocationException:
// 调用类初始值设定项,并且至少一个引发异常。
public static Type[] GetTypeArray(object[] args);
//
// 摘要:
// 获取指定 System.Type 的基础类型代码。
//
// 参数:
// type:
// 要获取其基础代码的类型。
//
// 返回结果:
// 如果 System.TypeCode.Empty 为 type,则为基础类型代码或 null。
public static TypeCode GetTypeCode(Type type);
//
// 摘要:
// 从指定服务器获取与指定类标识符 (CLSID) 关联的类型,指定在加载该类型时如果发生错误是否引发异常。
//
// 参数:
// clsid:
// 要获取的类型的 CLSID。
//
// server:
// 用于从中加载该类型的服务器。 如果服务器名称为 null,则此方法会自动恢复到本地计算机上。
//
// throwOnError:
// true 将引发所发生的任何异常。 - 或 - false 将忽略所发生的任何异常。
//
// 返回结果:
// System.__ComObject,无论 CLSID 是否有效。
[SecuritySafeCritical]
public static Type GetTypeFromCLSID(Guid clsid, string server, bool throwOnError);
//
// 摘要:
// 获取与指定类标识符 (CLSID) 关联的类型。
//
// 参数:
// clsid:
// 要获取的类型的 CLSID。
//
// 返回结果:
// System.__ComObject,无论 CLSID 是否有效。
[SecuritySafeCritical]
public static Type GetTypeFromCLSID(Guid clsid);
//
// 摘要:
// 获取与指定类标识符 (CLSID) 关联的类型,指定在加载该类型时如果发生错误是否引发异常。
//
// 参数:
// clsid:
// 要获取的类型的 CLSID。
//
// throwOnError:
// true 将引发所发生的任何异常。 - 或 - false 将忽略所发生的任何异常。
//
// 返回结果:
// System.__ComObject,无论 CLSID 是否有效。
[SecuritySafeCritical]
public static Type GetTypeFromCLSID(Guid clsid, bool throwOnError);
//
// 摘要:
// 从指定服务器获取与指定类标识符 (CLSID) 关联的类型。
//
// 参数:
// clsid:
// 要获取的类型的 CLSID。
//
// server:
// 用于从中加载该类型的服务器。 如果服务器名称为 null,则此方法会自动恢复到本地计算机上。
//
// 返回结果:
// System.__ComObject,无论 CLSID 是否有效。
[SecuritySafeCritical]
public static Type GetTypeFromCLSID(Guid clsid, string server);
//
// 摘要:
// 获取由指定类型句柄引用的类型。
//
// 参数:
// handle:
// 引用类型的对象。
//
// 返回结果:
// 如果 System.RuntimeTypeHandle 的 null 属性为 System.RuntimeTypeHandle.Value,则为由指定的
// handle 引用的类型,或者为 null。
//
// 异常:
// T:System.Reflection.TargetInvocationException:
// 调用了类初始值设定项,且该项引发了异常。
[SecuritySafeCritical]
public static Type GetTypeFromHandle(RuntimeTypeHandle handle);
//
// 摘要:
// 获取与指定程序标识符 (ProgID) 关联的类型,指定如果在加载该类型时发生错误是否引发异常。
//
// 参数:
// progID:
// 要获取的类型的 ProgID。
//
// throwOnError:
// true 将引发所发生的任何异常。 - 或 - false 将忽略所发生的任何异常。
//
// 返回结果:
// 如果 progID 是注册表中的有效项且有与之关联的类型,则为与指定程序标识符 (ProgID) 关联的类型;否则为 null。
//
// 异常:
// T:System.ArgumentException:
// progID 为 null。
//
// T:System.Runtime.InteropServices.COMException:
// 未注册指定的 ProgID。
[SecurityCritical]
public static Type GetTypeFromProgID(string progID, bool throwOnError);
//
// 摘要:
// 从指定服务器获取与指定程序标识符 (progID) 关联的类型,如果在加载该类型时遇到错误则返回空值。
//
// 参数:
// progID:
// 要获取的类型的 ProgID。
//
// server:
// 用于从中加载该类型的服务器。 如果服务器名称为 null,则此方法会自动恢复到本地计算机上。
//
// 返回结果:
// 如果 progID 是注册表中的有效项且有与之关联的类型,则为与指定程序标识符 (ProgID) 关联的类型;否则为 null。
//
// 异常:
// T:System.ArgumentException:
// prodID 为 null。
[SecurityCritical]
public static Type GetTypeFromProgID(string progID, string server);
//
// 摘要:
// 从指定服务器获取与指定程序标识符 (progID) 关联的类型,指定如果在加载该类型时发生错误是否引发异常。
//
// 参数:
// progID:
// 要获取的 System.Type 的 progID。
//
// server:
// 用于从中加载该类型的服务器。 如果服务器名称为 null,则此方法会自动恢复到本地计算机上。
//
// throwOnError:
// true 将引发所发生的任何异常。 - 或 - false 将忽略所发生的任何异常。
//
// 返回结果:
// 如果 progID 是注册表中的有效项且有与之关联的类型,则为与指定程序标识符 (ProgID) 关联的类型;否则为 null。
//
// 异常:
// T:System.ArgumentException:
// progID 为 null。
//
// T:System.Runtime.InteropServices.COMException:
// 未注册指定的 progID。
[SecurityCritical]
public static Type GetTypeFromProgID(string progID, string server, bool throwOnError);
//
// 摘要:
// 获取与指定程序标识符 (ProgID) 关联的类型,如果在加载 System.Type 时遇到错误,则返回空值。
//
// 参数:
// progID:
// 要获取的类型的 ProgID。
//
// 返回结果:
// 如果 progID 是注册表中的有效项,并且有与之关联的类型,则为与指定 ProgID 关联的类型;否则为 null。
//
// 异常:
// T:System.ArgumentException:
// progID 为 null。
[SecurityCritical]
public static Type GetTypeFromProgID(string progID);
//
// 摘要:
// 获取指定对象的 System.Type 的句柄。
//
// 参数:
// o:
// 要获取类型句柄的对象。
//
// 返回结果:
// 指定 System.Type 的 System.Object 的句柄。
//
// 异常:
// T:System.ArgumentNullException:
// o 为 null。
public static RuntimeTypeHandle GetTypeHandle(object o);
//
// 摘要:
// 获取具有指定名称的 System.Type,指定是否执行区分大小写的搜索,以及在找不到类型时是否引发异常。 该类型只为反射加载,而不为执行加载。
//
// 参数:
// typeName:
// 要获取的 System.Type 的程序集限定名称。
//
// throwIfNotFound:
// 如果为 true,则会在找不到该类型时引发 System.TypeLoadException;如果为 false,则在找不到该类型时返回 null。 指定
// false 还会取消某些其他异常条件,但并不取消所有条件。 请参见“异常”部分。
//
// ignoreCase:
// 如果为 true,则执行不区分大小写的 typeName 搜索;如果为 false,则执行区分大小写的 typeName 搜索。
//
// 返回结果:
// 具有指定名称的类型(如果找到的话);否则为 null。 如果找不到该类型,则 throwIfNotFound 参数指定是返回 null 还是引发异常。 在某些情况下,将引发异常,而不考虑
// throwIfNotFound 的值。 请参见“异常”部分。
//
// 异常:
// T:System.ArgumentNullException:
// typeName 为 null。
//
// T:System.Reflection.TargetInvocationException:
// 调用了类初始值设定项,且该项引发了异常。
//
// T:System.TypeLoadException:
// throwIfNotFound 是 true,且找不到该类型。 - 或 - throwIfNotFound 的值为 true,且 typeName 包含无效字符,例如嵌入的制表符。
// - 或 - throwIfNotFound 的值为 true,且 typeName 为空字符串。 - 或 - throwIfNotFound 的值为 true,且
// typeName 表示大小无效的数组类型。 - 或 - typeName 表示 System.TypedReference 对象数组。
//
// T:System.ArgumentException:
// typeName 不包括程序集名称。 - 或 - throwIfNotFound 为 true,且 typeName 包含无效的语法(例如 "MyType[,*,]")。
// - 或 - typeName 表示将指针类型、ByRef 类型或 System.Void 作为其类型参数之一的泛型类型。 - 或 - typeName 表示具有错误的类型参数数目的泛型类型。
// - 或 - typeName 表示泛型类型,并且其类型参数之一不满足相应类型参数的约束。
//
// T:System.IO.FileNotFoundException:
// throwIfNotFound 的值为 true,且未找到程序集或程序集的某个依赖项。
//
// T:System.IO.FileLoadException:
// 找到了程序集或其依赖项之一,但无法加载它们。
//
// T:System.BadImageFormatException:
// 程序集或其依赖项之一无效。 - 或 - 此程序集使用高于当前所加载版本的公共语言运行时版本编译而成。
public static Type ReflectionOnlyGetType(string typeName, bool throwIfNotFound, bool ignoreCase);
//
// 摘要:
// 确定当前的基础系统类型是否 System.Type 对象是指定的基础系统类型相同 System.Object。
//
// 参数:
// o:
// 该对象,其基础系统类型将与当前 System.Type 的基础系统类型相比较。 为了成功完成,进行比较 o 必须能够转换或转换为类型的对象 System.Type。
//
// 返回结果:
// 如果 true 的基础系统类型与当前 o 的基础系统类型相同,则为 System.Type;否则为 false。 此方法也返回 false 如果:。 o
// 为 null。 o 不能强制转换或转换为 System.Type 对象。
public override bool Equals(object o);
//
// 摘要:
// 确定当前 System.Type 的基础系统类型是否与指定 System.Type 的基础系统类型相同。
//
// 参数:
// o:
// 该对象,其基础系统类型将与当前 System.Type 的基础系统类型相比较。
//
// 返回结果:
// 如果 true 的基础系统类型与当前 o 的基础系统类型相同,则为 System.Type;否则为 false。
public virtual bool Equals(Type o);
//
// 摘要:
// 返回表示接口(由当前 System.Type 所实现或继承)的筛选列表的 System.Type 对象数组。
//
// 参数:
// filter:
// 对照 filterCriteria 比较接口的委托。
//
// filterCriteria:
// 确定接口是否应包括在返回数组中的搜索判据。
//
// 返回结果:
// 一个表示当前 System.Type 实现或继承的接口的筛选列表的 System.Type 对象数组,或者类型 System.Type 的空数组(如果当前
// System.Type 没有实现或继承匹配筛选器的接口)。
//
// 异常:
// T:System.ArgumentNullException:
// filter 为 null。
//
// T:System.Reflection.TargetInvocationException:
// 调用静态初始值设定项时引发了异常。
public virtual Type[] FindInterfaces(TypeFilter filter, object filterCriteria);
//
// 摘要:
// 返回指定成员类型的 System.Reflection.MemberInfo 对象的筛选数组。
//
// 参数:
// memberType:
// 指示要搜索的成员类型的对象。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// filter:
// 执行比较的委托,如果当前被检查的成员匹配 true,则返回 filterCriteria;否则返回 false。 可以使用该类提供的 FilterAttribute、FilterName
// 和 FilterNameIgnoreCase 委托。 第一个委托使用 FieldAttributes、MethodAttributes 和 MethodImplAttributes
// 的字段作为搜索判据,另两个委托使用 String 对象作为搜索判据。
//
// filterCriteria:
// 确定成员是否在 MemberInfo 对象数组中返回的搜索判据。 FieldAttributes、MethodAttributes 和 MethodImplAttributes
// 的字段可以和该类提供的 FilterAttribute 委托一起使用。
//
// 返回结果:
// 指定成员类型的 System.Reflection.MemberInfo 对象的筛选数组。 - 或 - 如果当前 System.Reflection.MemberInfo
// 没有匹配筛选判据的 System.Type 类型成员,则为 memberType 类型的空数组。
//
// 异常:
// T:System.ArgumentNullException:
// filter 为 null。
public virtual MemberInfo[] FindMembers(MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, object filterCriteria);
//
// 摘要:
// 获取数组中的维数。
//
// 返回结果:
// 包含当前类型中维数的整数。
//
// 异常:
// T:System.NotSupportedException:
// 此方法的功能在基类中不受支持,并且必须改为在派生类中实现。
//
// T:System.ArgumentException:
// 当前类型不是数组。
public virtual int GetArrayRank();
//
// 摘要:
// 使用指定绑定约束搜索其参数与指定参数类型和修饰符匹配的构造函数。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。
//
// types:
// System.Type 对象的数组,表示构造函数要获取的参数的个数、顺序和类型。 - 或 - 获取不使用参数的构造函数的 System.Type 类型的空数组(即
// Type[] types = new Type[0])。 - 或 - System.Type.EmptyTypes。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与参数类型数组中的相应元素关联的特性。 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的构造函数的 System.Reflection.ConstructorInfo 对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// types 为 null。 - 或 - types 的其中一个元素为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。 - 或 - types 和 modifiers 的长度不相同。
[ComVisible(true)]
public ConstructorInfo GetConstructor(BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 用指定绑定约束和指定调用约定,搜索其参数与指定参数类型及修饰符匹配的构造函数。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。
//
// callConvention:
// 对象,用于指定要使用的一套规则,这些规则涉及参数的顺序和布局、传递返回值的方式、用于参数的寄存器和清理堆栈的方式。
//
// types:
// System.Type 对象的数组,表示构造函数要获取的参数的个数、顺序和类型。 - 或 - 获取不使用参数的构造函数的 System.Type 类型的空数组(即
// Type[] types = new Type[0])。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的构造函数的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// types 为 null。 - 或 - types 的其中一个元素为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。 - 或 - types 和 modifiers 的长度不相同。
[ComVisible(true)]
public ConstructorInfo GetConstructor(BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 搜索其参数与指定数组中的类型匹配的公共实例构造函数。
//
// 参数:
// types:
// 表示需要的构造函数的参数个数、顺序和类型的 System.Type 对象的数组。 - 或 - System.Type 对象的空数组,用于获取不带参数的构造函数。
// 这样的空数组由 static 字段 System.Type.EmptyTypes 提供。
//
// 返回结果:
// 为表示某个公共实例构造函数(该构造函数的参数与参数类型数组中的类型匹配)的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// types 为 null。 - 或 - types 的其中一个元素为 null。
//
// T:System.ArgumentException:
// types 是多维的。
[ComVisible(true)]
public ConstructorInfo GetConstructor(Type[] types);
//
// 摘要:
// 当在派生类中重写时,使用指定 System.Type 搜索为当前 BindingFlags 定义的构造函数。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// 表示为当前 System.Reflection.ConstructorInfo 定义的匹配指定绑定约束的所有构造函数的 System.Type 对象数组,包括类型初始值设定项(如果定义的话)。
// 如果当前 System.Reflection.ConstructorInfo 没有定义构造函数,或者定义的构造函数都不符合绑定约束,或者当前 System.Type
// 表示泛型类型或泛型方法定义的类型参数,则返回 System.Type 类型的空数组。
[ComVisible(true)]
public abstract ConstructorInfo[] GetConstructors(BindingFlags bindingAttr);
//
// 摘要:
// 返回为当前 System.Type 定义的所有公共构造函数。
//
// 返回结果:
// System.Reflection.ConstructorInfo 对象的数组,表示当前 System.Type 定义的所有公共实例构造函数,但不包括类型初始值设定项(静态构造函数)。
// 如果没有为当前 System.Type 定义公共实例构造函数,或者当前 System.Type 表示泛型类型或泛型方法的定义中的类型参数,则返回 System.Reflection.ConstructorInfo
// 类型的空数组。
[ComVisible(true)]
public ConstructorInfo[] GetConstructors();
//
// 摘要:
// 搜索为设置了 System.Type 的当前 System.Reflection.DefaultMemberAttribute 定义的成员。
//
// 返回结果:
// 表示当前 System.Reflection.MemberInfo 的所有默认成员的 System.Type 对象数组。 - 或 - 如果当前 System.Reflection.MemberInfo
// 没有默认成员,则为 System.Type 类型的空数组。
public virtual MemberInfo[] GetDefaultMembers();
//
// 摘要:
// 当在派生类中重写时,返回当前数组、指针或引用类型包含的或引用的对象的 System.Type。
//
// 返回结果:
// 当前数组、指针或引用类型包含或引用的对象的 System.Type;如果当前 null 不是数组或指针,不是按引用传递,或者表示泛型类型或泛型方法的定义中的泛型类型或类型参数,则为
// System.Type。
public abstract Type GetElementType();
//
// 摘要:
// 返回当前枚举类型中具有指定值的常数的名称。
//
// 参数:
// value:
// 要检索其名称的值。
//
// 返回结果:
// 当前枚举类型中具有指定值的成员的名称;如果未找到这样的常数,则为 null。
//
// 异常:
// T:System.ArgumentException:
// 当前类型不是一个枚举。 - 或 - value 既不是当前类型,也不具有与当前类型相同的基础类型。
//
// T:System.ArgumentNullException:
// value 为 null。
public virtual string GetEnumName(object value);
//
// 摘要:
// 返回当前枚举类型中各个成员的名称。
//
// 返回结果:
// 一个数组,其中包含枚举中各个成员的名称。
//
// 异常:
// T:System.ArgumentException:
// 当前类型不是一个枚举。
public virtual string[] GetEnumNames();
//
// 摘要:
// 返回当前枚举类型的基础类型。
//
// 返回结果:
// 当前枚举的基础类型。
//
// 异常:
// T:System.ArgumentException:
// 当前类型不是一个枚举。 - 或 - 枚举类型无效,因为它包含多个实例字段。
public virtual Type GetEnumUnderlyingType();
//
// 摘要:
// 返回当前枚举类型中各个常数的值组成的数组。
//
// 返回结果:
// 包含值的数组。 该数组的元素按枚举常量的二进制值(无符号值)排序。
//
// 异常:
// T:System.ArgumentException:
// 当前类型不是一个枚举。
public virtual Array GetEnumValues();
//
// 摘要:
// 当在派生类中重写时,使用指定绑定约束,返回表示指定事件的 System.Reflection.EventInfo 对象。
//
// 参数:
// name:
// 字符串包含由当前的 System.Type 声明或继承的事件的名称。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// 如找到,则为表示由当前 System.Type 声明或继承的指定公共事件的对象;否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
public abstract EventInfo GetEvent(string name, BindingFlags bindingAttr);
//
// 摘要:
// 返回表示指定的公共事件的 System.Reflection.EventInfo 对象。
//
// 参数:
// name:
// 该字符串包含事件名称,该事件是由当前 System.Type 声明或继承的。
//
// 返回结果:
// 如找到,则为表示由当前 System.Type 声明或继承的指定公共事件的对象;否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
public EventInfo GetEvent(string name);
//
// 摘要:
// 当在派生类中重写时,使用指定绑定约束,搜索由当前 System.Type 声明或继承的事件。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// System.Reflection.EventInfo 对象的数组,表示当前 System.Type 所声明或继承的与指定绑定约束匹配的所有事件。 - 或
// - 如果当前 System.Reflection.EventInfo 没有事件,或者如果没有一个事件匹配绑定约束,则为 System.Type 类型的空数组。
public abstract EventInfo[] GetEvents(BindingFlags bindingAttr);
//
// 摘要:
// 返回由当前 System.Type 声明或继承的所有公共事件。
//
// 返回结果:
// 表示由当前 System.Reflection.EventInfo 声明或继承的所有公共事件的 System.Type 对象数组。 - 或 - 如果当前
// System.Reflection.EventInfo 没有默认成员,则为 System.Type 类型的空数组。
public virtual EventInfo[] GetEvents();
//
// 摘要:
// 使用指定绑定约束搜索指定字段。
//
// 参数:
// name:
// 包含要获取的数据字段的名称的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// 表示符合指定要求的字段的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
public abstract FieldInfo GetField(string name, BindingFlags bindingAttr);
//
// 摘要:
// 搜索具有指定名称的公共字段。
//
// 参数:
// name:
// 包含要获取的数据字段的名称的字符串。
//
// 返回结果:
// 如找到,则为表示具有指定名称的公共字段的对象;否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
//
// T:System.NotSupportedException:
// 此 System.Type 对象是尚未调用其 System.Reflection.Emit.TypeBuilder.CreateType 方法的 System.Reflection.Emit.TypeBuilder。
public FieldInfo GetField(string name);
//
// 摘要:
// 当在派生类中重写时,使用指定绑定约束,搜索为当前 System.Type 定义的字段。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// 表示为当前 System.Reflection.FieldInfo 定义的匹配指定绑定约束的所有字段的 System.Type 对象数组。 - 或 - 如果没有为当前
// System.Reflection.FieldInfo 定义的字段,或者如果没有一个定义的字段匹配绑定约束,则为 System.Type 类型的空数组。
public abstract FieldInfo[] GetFields(BindingFlags bindingAttr);
//
// 摘要:
// 返回当前 System.Type 的所有公共字段。
//
// 返回结果:
// 表示为当前 System.Reflection.FieldInfo 定义的所有公共字段的 System.Type 对象数组。 - 或 - 如果没有为当前
// System.Reflection.FieldInfo 定义的公共字段,则为 System.Type 类型的空数组。
public FieldInfo[] GetFields();
//
// 摘要:
// 返回表示封闭式泛型类型的类型参数或泛型类型定义的类型参数的 System.Type 对象的数组。
//
// 返回结果:
// 表示泛型类型的类型实参的 System.Type 对象的数组。 如果当前类型不是泛型类型,则返回一个空数组。
//
// 异常:
// T:System.NotSupportedException:
// 基类不支持调用的方法。 派生类必须提供一个实现。
public virtual Type[] GetGenericArguments();
//
// 摘要:
// 返回表示当前泛型类型参数约束的 System.Type 对象的数组。
//
// 返回结果:
// 表示当前泛型类型参数上的约束的 System.Type 对象的数组。
//
// 异常:
// T:System.InvalidOperationException:
// 当前 System.Type 对象不是泛型类型参数。 也就是说,System.Type.IsGenericParameter 属性将返回 false。
public virtual Type[] GetGenericParameterConstraints();
//
// 摘要:
// 返回一个表示可用于构造当前泛型类型的泛型类型定义的 System.Type 对象。
//
// 返回结果:
// 表示可用于构造当前类型的泛型类型的 System.Type 对象。
//
// 异常:
// T:System.InvalidOperationException:
// 当前类型不是泛型类型。 也就是说,System.Type.IsGenericType 返回 false。
//
// T:System.NotSupportedException:
// 基类不支持调用的方法。 派生类必须提供一个实现。
public virtual Type GetGenericTypeDefinition();
//
// 摘要:
// 返回此实例的哈希代码。
//
// 返回结果:
// 此实例的哈希代码。
public override int GetHashCode();
//
// 摘要:
// 当在派生类中重写时,搜索指定的接口,指定是否要对接口名称执行不区分大小写的搜索。
//
// 参数:
// name:
// 包含要获取的接口名称的字符串。 对于泛型接口,这是重整名称。
//
// ignoreCase:
// true 表示对于用来指定简单接口名称的 name 部分(该部分指定命名空间大小写必须正确)忽略其大小写。 - 或 - false 表示对 name 的所有部分执行区分大小写的搜索。
//
// 返回结果:
// 表示具有指定名称且由当前的 System.Type 实现或继承的接口的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
//
// T:System.Reflection.AmbiguousMatchException:
// 当前 System.Type 表示实现具有不同类型参数的相同泛型接口的类型。
public abstract Type GetInterface(string name, bool ignoreCase);
//
// 摘要:
// 搜索具有指定名称的接口。
//
// 参数:
// name:
// 包含要获取的接口名称的字符串。 对于泛型接口,这是重整名称。
//
// 返回结果:
// 表示具有指定名称且由当前的 System.Type 实现或继承的接口的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
//
// T:System.Reflection.AmbiguousMatchException:
// 当前 System.Type 表示实现具有不同类型参数的相同泛型接口的类型。
public Type GetInterface(string name);
//
// 摘要:
// 返回指定接口类型的接口映射。
//
// 参数:
// interfaceType:
// 要检索其映射的接口类型。
//
// 返回结果:
// 表示 interfaceType 的接口映射的对象。
//
// 异常:
// T:System.ArgumentException:
// 当前类型未实现 interfaceType。 - 或 - interfaceType 参数未引用接口。 - 或 - interfaceType 是一个泛型接口,而当前类型是一个数组类型。
//
// T:System.ArgumentNullException:
// interfaceType 为 null。
//
// T:System.InvalidOperationException:
// 当前 System.Type 表示泛型类型参数;即,System.Type.IsGenericParameter 为 true。
//
// T:System.NotSupportedException:
// 基类不支持调用的方法。 派生类必须提供一个实现。
[ComVisible(true)]
public virtual InterfaceMapping GetInterfaceMap(Type interfaceType);
//
// 摘要:
// 当在派生类中重写时,获取由当前 System.Type 实现或继承的所有接口。
//
// 返回结果:
// 表示由当前 System.Type 实现或继承的所有接口的 System.Type 对象数组。 - 或 - 如果没有由当前 System.Type 实现或继承的接口,则为
// System.Type 类型的空数组。
//
// 异常:
// T:System.Reflection.TargetInvocationException:
// 调用静态初始值设定项时引发了异常。
public abstract Type[] GetInterfaces();
//
// 摘要:
// 搜索具有指定名称的公共成员。
//
// 参数:
// name:
// 包含要获取的公共成员名称的字符串。
//
// 返回结果:
// 一个表示具有指定名称的公共成员的 System.Reflection.MemberInfo 对象数组(如果找到的话);否则为空数组。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
public MemberInfo[] GetMember(string name);
//
// 摘要:
// 使用指定绑定约束搜索指定成员。
//
// 参数:
// name:
// 包含要获取的成员的名称的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,返回空数组。
//
// 返回结果:
// 一个表示具有指定名称的公共成员的 System.Reflection.MemberInfo 对象数组(如果找到的话);否则为空数组。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
public virtual MemberInfo[] GetMember(string name, BindingFlags bindingAttr);
//
// 摘要:
// 使用指定绑定约束搜索指定成员类型的指定成员。
//
// 参数:
// name:
// 包含要获取的成员的名称的字符串。
//
// type:
// 要搜索的值。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,返回空数组。
//
// 返回结果:
// 一个表示具有指定名称的公共成员的 System.Reflection.MemberInfo 对象数组(如果找到的话);否则为空数组。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
//
// T:System.NotSupportedException:
// 派生类必须提供一个实现。
public virtual MemberInfo[] GetMember(string name, MemberTypes type, BindingFlags bindingAttr);
//
// 摘要:
// 返回为当前 System.Type 的所有公共成员。
//
// 返回结果:
// 表示当前 System.Reflection.MemberInfo 的所有公共成员的 System.Type 对象数组。 - 或 - 如果当前 System.Reflection.MemberInfo
// 没有公共成员,则为 System.Type 类型的空数组。
public MemberInfo[] GetMembers();
//
// 摘要:
// 当在派生类中重写时,使用指定绑定约束,搜索为当前 System.Type 定义的成员。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 如果为零 (System.Reflection.BindingFlags.Default),则返回空数组。
//
// 返回结果:
// 表示为当前 System.Reflection.MemberInfo 定义的匹配指定绑定约束的所有成员的 System.Type 对象数组。 - 或 -
// 如果没有为当前 System.Reflection.MemberInfo 定义的成员,或者如果没有一个定义的成员匹配绑定约束,则为 System.Type
// 类型的空数组。
public abstract MemberInfo[] GetMembers(BindingFlags bindingAttr);
//
// 摘要:
// 搜索具有指定名称的公共方法。
//
// 参数:
// name:
// 包含要获取的公共方法的名称的字符串。
//
// 返回结果:
// 表示具有指定名称的公共方法的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到了多个具有指定名称的方法。
//
// T:System.ArgumentNullException:
// name 为 null。
public MethodInfo GetMethod(string name);
//
// 摘要:
// 使用指定绑定约束搜索指定方法。
//
// 参数:
// name:
// 包含要获取的方法名称的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// 表示符合指定要求的方法的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称且与指定绑定约束匹配的方法。
//
// T:System.ArgumentNullException:
// name 为 null。
public MethodInfo GetMethod(string name, BindingFlags bindingAttr);
//
// 摘要:
// 搜索其参数与指定参数类型及修饰符匹配的指定公共方法。
//
// 参数:
// name:
// 包含要获取的公共方法的名称的字符串。
//
// types:
// 表示此方法要获取的参数的个数、顺序和类型的 System.Type 对象数组。 - 或 - 空的 System.Type 对象数组(由 System.Type.EmptyTypes
// 字段提供),用来获取不采用参数的方法。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。 仅当通过 COM 互操作进行调用时才使用,而且仅处理通过引用传递的参数。
// 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的公共方法的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到了多个具有指定名称和指定参数的方法。
//
// T:System.ArgumentNullException:
// name 为 null。 - 或 - types 为 null。 - 或 - types 的其中一个元素为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。
public MethodInfo GetMethod(string name, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 使用指定绑定约束,搜索其参数与指定参数类型及修饰符匹配的指定方法。
//
// 参数:
// name:
// 包含要获取的方法名称的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。
//
// types:
// 表示此方法要获取的参数的个数、顺序和类型的 System.Type 对象数组。 - 或 - 空的 System.Type 对象数组(由 System.Type.EmptyTypes
// 字段提供),用来获取不采用参数的方法。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。 仅当通过 COM 互操作进行调用时才使用,而且仅处理通过引用传递的参数。
// 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的方法的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称且与指定绑定约束匹配的方法。
//
// T:System.ArgumentNullException:
// name 为 null。 - 或 - types 为 null。 - 或 - types 的其中一个元素为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。
public MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 用指定的绑定约束和指定的调用约定,搜索参数与指定的参数类型及修饰符相匹配的指定方法。
//
// 参数:
// name:
// 包含要获取的方法名称的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。
//
// callConvention:
// 该对象用于指定要使用的一套规则,这些规则涉及参数的顺序和布局、传递返回值的方式、用于参数的寄存器和清理堆栈的方式。
//
// types:
// 表示此方法要获取的参数的个数、顺序和类型的 System.Type 对象数组。 - 或 - 空的 System.Type 对象数组(由 System.Type.EmptyTypes
// 字段提供),用来获取不采用参数的方法。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。 仅当通过 COM 互操作进行调用时才使用,而且仅处理通过引用传递的参数。
// 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的方法的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称且与指定绑定约束匹配的方法。
//
// T:System.ArgumentNullException:
// name 为 null。 - 或 - types 为 null。 - 或 - types 的其中一个元素为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。
public MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 搜索其参数与指定参数类型匹配的指定公共方法。
//
// 参数:
// name:
// 包含要获取的公共方法的名称的字符串。
//
// types:
// 表示此方法要获取的参数的个数、顺序和类型的 System.Type 对象数组。 - 或 - 空的 System.Type 对象数组(由 System.Type.EmptyTypes
// 字段提供),用来获取不采用参数的方法。
//
// 返回结果:
// 表示其参数与指定参数类型匹配的公共方法的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到了多个具有指定名称和指定参数的方法。
//
// T:System.ArgumentNullException:
// name 为 null。 - 或 - types 为 null。 - 或 - types 的其中一个元素为 null。
//
// T:System.ArgumentException:
// types 是多维的。
public MethodInfo GetMethod(string name, Type[] types);
//
// 摘要:
// 当在派生类中重写时,使用指定绑定约束,搜索为当前 System.Type 定义的方法。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// 表示为当前 System.Reflection.MethodInfo 定义的匹配指定绑定约束的所有方法的 System.Type 对象数组。 - 或 -
// 如果没有为当前 System.Reflection.MethodInfo 定义的方法,或者如果没有一个定义的方法匹配绑定约束,则为 System.Type
// 类型的空数组。
public abstract MethodInfo[] GetMethods(BindingFlags bindingAttr);
//
// 摘要:
// 返回为当前 System.Type 的所有公共方法。
//
// 返回结果:
// 表示为当前 System.Reflection.MethodInfo 定义的所有公共方法的 System.Type 对象数组。 - 或 - 如果没有为当前
// System.Reflection.MethodInfo 定义的公共方法,则为 System.Type 类型的空数组。
public MethodInfo[] GetMethods();
//
// 摘要:
// 当在派生类中重写时,使用指定绑定约束搜索指定嵌套类型。
//
// 参数:
// name:
// 包含要获取的嵌套类型的名称的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// 表示符合指定要求的嵌套类型的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
public abstract Type GetNestedType(string name, BindingFlags bindingAttr);
//
// 摘要:
// 搜索具有指定名称的公共嵌套类型。
//
// 参数:
// name:
// 包含要获取的嵌套类型的名称的字符串。
//
// 返回结果:
// 如找到,则为表示具有指定名称的公共嵌套类型的对象;否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// name 为 null。
public Type GetNestedType(string name);
//
// 摘要:
// 当在派生类中重写时,使用指定绑定约束搜索嵌套在当前 System.Type 中的类型。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// System.Type 对象数组,这些对象表示嵌套在当前 System.Type 中的所有与指定的绑定约束匹配的类型(搜索是非递归的);如果没有找到与绑定约束匹配的嵌套类型,则为
// System.Type 类型的空数组。
public abstract Type[] GetNestedTypes(BindingFlags bindingAttr);
//
// 摘要:
// 返回嵌套在当前的 System.Type 中的公共类型。
//
// 返回结果:
// System.Type 对象的数组,这些对象表示嵌套在当前 System.Type 中的公共类型(搜索是非递归的);如果当前的 System.Type 中没有嵌套公共类型,则为
// System.Type 类型的空数组。
public Type[] GetNestedTypes();
//
// 摘要:
// 返回为当前 System.Type 的所有公共属性。
//
// 返回结果:
// 表示当前 System.Reflection.PropertyInfo 的所有公共属性的 System.Type 对象数组。 - 或 - 如果当前 System.Reflection.PropertyInfo
// 没有公共属性,则为 System.Type 类型的空数组。
public PropertyInfo[] GetProperties();
//
// 摘要:
// 当在派生类中重写时,使用指定绑定约束,搜索当前 System.Type 的属性。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// 表示当前 System.Reflection.PropertyInfo 的匹配指定绑定约束的所有属性的 System.Type 对象数组。 - 或 - 如果当前
// System.Reflection.PropertyInfo 没有属性,或者如果没有一个属性匹配绑定约束,则为 System.Type 类型的空数组。
public abstract PropertyInfo[] GetProperties(BindingFlags bindingAttr);
//
// 摘要:
// 搜索具有指定名称和返回类型的公共属性。
//
// 参数:
// name:
// 包含要获取的公共属性名的字符串。
//
// returnType:
// 属性的返回类型。
//
// 返回结果:
// 表示具有指定名称的公共属性的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到了多个具有指定名称的属性。
//
// T:System.ArgumentNullException:
// name 是 null,或 returnType 是 null。
public PropertyInfo GetProperty(string name, Type returnType);
//
// 摘要:
// 搜索其参数与指定参数类型匹配的指定公共属性。
//
// 参数:
// name:
// 包含要获取的公共属性名的字符串。
//
// types:
// 一个 System.Type 对象数组,表示要获取的索引属性的参数的数目、顺序和类型。 - 或 - 获取未被索引的属性的 System.Type 类型的空数组(即
// Type[] types = new Type[0])。
//
// 返回结果:
// 表示其参数与指定参数类型匹配的公共属性的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称且与指定参数类型匹配的属性。
//
// T:System.ArgumentNullException:
// name 为 null。 - 或 - types 为 null。
//
// T:System.ArgumentException:
// types 是多维的。
//
// T:System.NullReferenceException:
// types 的元素为 null。
public PropertyInfo GetProperty(string name, Type[] types);
//
// 摘要:
// 使用指定的绑定约束,搜索参数与指定的参数类型及修饰符匹配的指定属性。
//
// 参数:
// name:
// 包含要获取的属性名的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。
//
// returnType:
// 属性的返回类型。
//
// types:
// 一个 System.Type 对象数组,表示要获取的索引属性的参数的数目、顺序和类型。 - 或 - 获取未被索引的属性的 System.Type 类型的空数组(即
// Type[] types = new Type[0])。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的属性的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称的属性且属性与指定绑定约束匹配。
//
// T:System.ArgumentNullException:
// name 为 null。 - 或 - types 为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。 - 或 - types 和 modifiers 的长度不相同。
//
// T:System.NullReferenceException:
// types 的元素为 null。
public PropertyInfo GetProperty(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 搜索其参数与指定参数类型及修饰符匹配的指定公共属性。
//
// 参数:
// name:
// 包含要获取的公共属性名的字符串。
//
// returnType:
// 属性的返回类型。
//
// types:
// 一个 System.Type 对象数组,表示要获取的索引属性的参数的数目、顺序和类型。 - 或 - 获取未被索引的属性的 System.Type 类型的空数组(即
// Type[] types = new Type[0])。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的公共属性的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称且与指定参数类型和修饰符匹配的属性。
//
// T:System.ArgumentNullException:
// name 为 null。 - 或 - types 为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。 - 或 - types 和 modifiers 的长度不相同。
//
// T:System.NullReferenceException:
// types 的元素为 null。
public PropertyInfo GetProperty(string name, Type returnType, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 使用指定的绑定约束搜索指定属性。
//
// 参数:
// name:
// 包含要获取的属性名的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// 返回结果:
// 表示符合指定要求的属性的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称的属性且属性与指定绑定约束匹配。 请参阅“备注”。
//
// T:System.ArgumentNullException:
// name 为 null。
public PropertyInfo GetProperty(string name, BindingFlags bindingAttr);
//
// 摘要:
// 搜索其参数与指定参数类型匹配的指定公共属性。
//
// 参数:
// name:
// 包含要获取的公共属性名的字符串。
//
// returnType:
// 属性的返回类型。
//
// types:
// 一个 System.Type 对象数组,表示要获取的索引属性的参数的数目、顺序和类型。 - 或 - 获取未被索引的属性的 System.Type 类型的空数组(即
// Type[] types = new Type[0])。
//
// 返回结果:
// 表示其参数与指定参数类型匹配的公共属性的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称且与指定参数类型匹配的属性。
//
// T:System.ArgumentNullException:
// name 为 null。 - 或 - types 为 null。
//
// T:System.ArgumentException:
// types 是多维的。
//
// T:System.NullReferenceException:
// types 的元素为 null。
public PropertyInfo GetProperty(string name, Type returnType, Type[] types);
//
// 摘要:
// 搜索具有指定名称的公共属性。
//
// 参数:
// name:
// 包含要获取的公共属性名的字符串。
//
// 返回结果:
// 表示具有指定名称的公共属性的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到了多个具有指定名称的属性。 请参阅“备注”。
//
// T:System.ArgumentNullException:
// name 为 null。
public PropertyInfo GetProperty(string name);
//
// 摘要:
// 获取当前 System.Type。
//
// 返回结果:
// 当前的 System.Type。
//
// 异常:
// T:System.Reflection.TargetInvocationException:
// 调用了类初始值设定项,且该项引发了异常。
public Type GetType();
//
// 摘要:
// 当在派生类中重写时,使用指定的绑定约束并匹配指定的参数列表、修饰符和区域性,调用指定成员。
//
// 参数:
// name:
// 字符串,它包含要调用的构造函数、方法、属性或字段成员的名称。 - 或 - 空字符串 (""),表示调用默认成员。 - 或 - 对于 IDispatch 成员,则为一个表示
// DispID 的字符串,例如"[DispID=3]"。
//
// invokeAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 访问可以是 BindingFlags 之一,如
// Public、NonPublic、Private、InvokeMethod 和 GetField 等。 查找类型无需指定。 如果省略查找的类型,则将使用
// BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 System.Type.DefaultBinder
// 的空引用(在 Visual Basic 中为 Nothing)。 请注意,为了成功地使用变量参数来调用方法重载,可能必须显式定义 System.Reflection.Binder
// 对象。
//
// target:
// 对其调用指定成员的对象。
//
// args:
// 包含传递给要调用的成员的参数的数组。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 args 数组中的相应元素关联的特性。 参数的关联的属性存储在成员的签名中。
// 只有在调用 COM 组件时,默认联编程序才处理此参数。
//
// culture:
// 表示要使用的全局化区域设置的 System.Globalization.CultureInfo 对象,它对区域设置特定的转换可能是必需的,比如将数字 String
// 转换为 Double。 - 或 - 要使用当前线程的 Nothing 的空引用(在 Visual Basic 中为 System.Globalization.CultureInfo)。
//
// namedParameters:
// 包含参数名称的数组,args 数组中的值将传递给这些参数。
//
// 返回结果:
// 一个对象,表示被调用成员的返回值。
//
// 异常:
// T:System.ArgumentNullException:
// invokeAttr 不包含 CreateInstance,并且 name 为 null。
//
// T:System.ArgumentException:
// args 和 modifiers 的长度不相同。 - 或 - invokeAttr 不是有效的 System.Reflection.BindingFlags
// 属性。 - 或 - invokeAttr 不包含以下某个绑定标志:InvokeMethod、CreateInstance、GetField、SetField、GetProperty
// 或 SetProperty。 - 或 - invokeAttr 包含 CreateInstance 与 InvokeMethod、GetField、SetField、GetProperty
// 或 SetProperty 的组合。 - 或 - invokeAttr 同时包含 GetField 和 SetField。 - 或 - invokeAttr
// 同时包含 GetProperty 和 SetProperty。 - 或 - invokeAttr 包含 InvokeMethod 与 SetField 或
// SetProperty 的组合。 - 或 - invokeAttr 包含 SetField,并且 args 具有多个元素。 - 或 - 命名的参数数组大于参数数组。
// - 或 - 对 COM 对象调用了此方法,但以下绑定标志中有一个未传入:BindingFlags.InvokeMethod、BindingFlags.GetProperty、BindingFlags.SetProperty、BindingFlags.PutDispProperty
// 或 BindingFlags.PutRefDispProperty。 - 或 - 其中一个命名参数数组包含一个值为 null 的字符串。
//
// T:System.MethodAccessException:
// 指定的成员是类初始值设定项。
//
// T:System.MissingFieldException:
// 找不到此字段或属性。
//
// T:System.MissingMethodException:
// 找不到与 args 中的参数匹配的方法。 - 或 - 找不到具有 namedParameters 中提供的参数名称的成员。 - 或 - 当前 System.Type
// 对象表示包含开放类型参数的类型,也就是说,System.Type.ContainsGenericParameters 将返回 true。
//
// T:System.Reflection.TargetException:
// 不能在 target 上调用指定的成员。
//
// T:System.Reflection.AmbiguousMatchException:
// 多个方法与绑定条件匹配。
//
// T:System.InvalidOperationException:
// 由 name 表示的方法具有一个或多个未指定的泛型类型参数。 也就是说,此方法的 System.Reflection.MethodInfo.ContainsGenericParameters
// 属性将返回 true。
public abstract object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters);
//
// 摘要:
// 使用指定的绑定约束和匹配的指定参数列表及区域性来调用指定成员。
//
// 参数:
// name:
// 字符串,它包含要调用的构造函数、方法、属性或字段成员的名称。 - 或 - 空字符串 (""),表示调用默认成员。 - 或 - 对于 IDispatch 成员,则为一个表示
// DispID 的字符串,例如"[DispID=3]"。
//
// invokeAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 访问可以是 BindingFlags 之一,如
// Public、NonPublic、Private、InvokeMethod 和 GetField 等。 查找类型无需指定。 如果省略查找的类型,则将使用
// BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。 请注意,为了成功地使用变量参数来调用方法重载,可能必须显式定义 System.Reflection.Binder
// 对象。
//
// target:
// 对其调用指定成员的对象。
//
// args:
// 包含传递给要调用的成员的参数的数组。
//
// culture:
// 表示要使用的全局化区域设置的对象,它对区域设置特定的转换可能是必需的,比如将数字 System.String 转换为 System.Double。 - 或
// - 要使用当前线程的 Nothing 的空引用(在 Visual Basic 中为 System.Globalization.CultureInfo)。
//
// 返回结果:
// 一个对象,表示被调用成员的返回值。
//
// 异常:
// T:System.ArgumentNullException:
// invokeAttr 不包含 CreateInstance,并且 name 为 null。
//
// T:System.ArgumentException:
// invokeAttr 不是有效的 System.Reflection.BindingFlags 属性。 - 或 - invokeAttr 不包含以下某个绑定标志:InvokeMethod、CreateInstance、GetField、SetField、GetProperty
// 或 SetProperty。 - 或 - invokeAttr 包含 CreateInstance 与 InvokeMethod、GetField、SetField、GetProperty
// 或 SetProperty 的组合。 - 或 - invokeAttr 同时包含 GetField 和 SetField。 - 或 - invokeAttr
// 同时包含 GetProperty 和 SetProperty。 - 或 - invokeAttr 包含 InvokeMethod 与 SetField 或
// SetProperty 的组合。 - 或 - invokeAttr 包含 SetField,并且 args 具有多个元素。 - 或 - 对 COM 对象调用了此方法,但以下绑定标志中有一个未传入:BindingFlags.InvokeMethod、BindingFlags.GetProperty、BindingFlags.SetProperty、BindingFlags.PutDispProperty
// 或 BindingFlags.PutRefDispProperty。 - 或 - 其中一个命名参数数组包含一个值为 null 的字符串。
//
// T:System.MethodAccessException:
// 指定的成员是类初始值设定项。
//
// T:System.MissingFieldException:
// 找不到此字段或属性。
//
// T:System.MissingMethodException:
// 找不到与 args 中的参数匹配的方法。 - 或 - 当前 System.Type 对象表示包含开放类型参数的类型,也就是说,System.Type.ContainsGenericParameters
// 将返回 true。
//
// T:System.Reflection.TargetException:
// 不能在 target 上调用指定的成员。
//
// T:System.Reflection.AmbiguousMatchException:
// 多个方法与绑定条件匹配。
//
// T:System.InvalidOperationException:
// 由 name 表示的方法具有一个或多个未指定的泛型类型参数。 也就是说,此方法的 System.Reflection.MethodInfo.ContainsGenericParameters
// 属性将返回 true。
[DebuggerHidden]
[DebuggerStepThrough]
public object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture);
//
// 摘要:
// 使用指定的绑定约束并匹配指定的参数列表,调用指定成员。
//
// 参数:
// name:
// 字符串,它包含要调用的构造函数、方法、属性或字段成员的名称。 - 或 - 空字符串 (""),表示调用默认成员。 - 或 - 对于 IDispatch 成员,则为一个表示
// DispID 的字符串,例如"[DispID=3]"。
//
// invokeAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 访问可以是 BindingFlags 之一,如
// Public、NonPublic、Private、InvokeMethod 和 GetField 等。 查找类型无需指定。 如果省略查找的类型,则将使用
// BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。 请注意,为了成功地使用变量参数来调用方法重载,可能必须显式定义 System.Reflection.Binder
// 对象。
//
// target:
// 对其调用指定成员的对象。
//
// args:
// 包含传递给要调用的成员的参数的数组。
//
// 返回结果:
// 一个对象,表示被调用成员的返回值。
//
// 异常:
// T:System.ArgumentNullException:
// invokeAttr 不包含 CreateInstance,并且 name 为 null。
//
// T:System.ArgumentException:
// invokeAttr 不是有效的 System.Reflection.BindingFlags 属性。 - 或 - invokeAttr 不包含以下某个绑定标志:InvokeMethod、CreateInstance、GetField、SetField、GetProperty
// 或 SetProperty。 - 或 - invokeAttr 包含 CreateInstance 与 InvokeMethod、GetField、SetField、GetProperty
// 或 SetProperty 的组合。 - 或 - invokeAttr 同时包含 GetField 和 SetField。 - 或 - invokeAttr
// 同时包含 GetProperty 和 SetProperty。 - 或 - invokeAttr 包含 InvokeMethod 与 SetField 或
// SetProperty 的组合。 - 或 - invokeAttr 包含 SetField,并且 args 具有多个元素。 - 或 - 对 COM 对象调用了此方法,但以下绑定标志中有一个未传入:BindingFlags.InvokeMethod、BindingFlags.GetProperty、BindingFlags.SetProperty、BindingFlags.PutDispProperty
// 或 BindingFlags.PutRefDispProperty。 - 或 - 其中一个命名参数数组包含一个值为 null 的字符串。
//
// T:System.MethodAccessException:
// 指定的成员是类初始值设定项。
//
// T:System.MissingFieldException:
// 找不到此字段或属性。
//
// T:System.MissingMethodException:
// 找不到与 args 中的参数匹配的方法。 - 或 - 当前 System.Type 对象表示包含开放类型参数的类型,也就是说,System.Type.ContainsGenericParameters
// 将返回 true。
//
// T:System.Reflection.TargetException:
// 不能在 target 上调用指定的成员。
//
// T:System.Reflection.AmbiguousMatchException:
// 多个方法与绑定条件匹配。
//
// T:System.NotSupportedException:
// .NET Compact Framework 当前不支持此方法。
//
// T:System.InvalidOperationException:
// 由 name 表示的方法具有一个或多个未指定的泛型类型参数。 也就是说,此方法的 System.Reflection.MethodInfo.ContainsGenericParameters
// 属性将返回 true。
[DebuggerHidden]
[DebuggerStepThrough]
public object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args);
//
// 摘要:
// 确定指定类型的实例是否可以分配给当前类型的实例。
//
// 参数:
// c:
// 要与当前类型进行比较的类型。
//
// 返回结果:
// 如果满足下列任一条件,则为 true: c 且当前实例表示相同类型。 c 是从当前实例直接或间接派生的。 c 它继承自的当前实例; 如果直接从当前实例派生
// c 如果它继承自一个或多个从继承类的当前实例的一系列的当前实例中间接派生。 当前实例是一个 c 实现的接口。 c 是一个泛型类型参数,并且当前实例表示 c
// 的约束之一。 在下面的示例中,当前实例是 System.Type 对象,表示 System.IO.Stream 类。 GenericWithConstraint
// 是泛型类型的泛型类型参数的类型必须为 System.IO.Stream。 传递到其泛型类型参数 System.Type.IsAssignableFrom(System.Type)
// 指示泛型类型参数的实例可以分配给 System.IO.Stream 对象。 System.Type.IsAssignableFrom#2 c 表示一个值类型,并且当前实例表示表示
// Nullable<c>(在 Visual Basic 中为 Nullable(Of c))。 如果不满足上述任何一个条件或者 false 为 c,则为 null。
public virtual bool IsAssignableFrom(Type c);
//
// 摘要:
// 返回一个值,该值指示当前的枚举类型中是否存在指定的值。
//
// 参数:
// value:
// 要测试的值。
//
// 返回结果:
// 如果指定的值是当前枚举类型的成员,则为 true;否则为 false。
//
// 异常:
// T:System.ArgumentException:
// 当前类型不是一个枚举。
//
// T:System.ArgumentNullException:
// value 为 null。
//
// T:System.InvalidOperationException:
// value 类型不能为枚举的基础类型。
public virtual bool IsEnumDefined(object value);
//
// 摘要:
// 确定两个 COM 类型是否具有相同的标识,以及是否符合类型等效的条件。
//
// 参数:
// other:
// 要测试是否与当前类型等效的 COM 类型。
//
// 返回结果:
// 如果 COM 类型等效,则为 true;否则为 false。 如果一个类型位于为执行加载的程序集中,而另一个类型位于已加载到仅限反射上下文的程序集中,则此方法也返回
// false。
public virtual bool IsEquivalentTo(Type other);
//
// 摘要:
// 确定指定的对象是否是当前 System.Type 的实例。
//
// 参数:
// o:
// 要与当前类型进行比较的对象。
//
// 返回结果:
// 如果满足下列任一条件,则为 true:当前 Type 位于由 o 表示的对象的继承层次结构中;当前 Type 是 o 实现的接口。 如果不属于其中任一种情况,o
// 为 null,或者当前 Type 为开放式泛型类型(即 System.Type.ContainsGenericParameters 返回 true),则为
// false。
public virtual bool IsInstanceOfType(object o);
//
// 摘要:
// 确定当前 System.Type 是否派生自指定的 System.Type。
//
// 参数:
// c:
// 要与当前类型进行比较的类型。
//
// 返回结果:
// 如果当前 true 派生于 Type,则为 c;否则为 false。 如果 false 和当前 c 相等,此方法也返回 Type。
//
// 异常:
// T:System.ArgumentNullException:
// c 为 null。
[ComVisible(true)]
public virtual bool IsSubclassOf(Type c);
//
// 摘要:
// 返回 System.Type 对象,该对象表示一个具有指定维数的当前类型的数组。
//
// 参数:
// rank:
// 数组的维数。 此数字必须小于或等于 32。
//
// 返回结果:
// 表示当前类型的指定维数的数组的对象。
//
// 异常:
// T:System.IndexOutOfRangeException:
// rank 无效。 例如,0 或负数。
//
// T:System.NotSupportedException:
// 基类不支持调用的方法。
//
// T:System.TypeLoadException:
// 当前的类型是 System.TypedReference。 - 或 - 当前的类型是 ByRef 类型。 也就是说,System.Type.IsByRef
// 返回 true。 - 或 - rank 大于 32。
public virtual Type MakeArrayType(int rank);
//
// 摘要:
// 返回 System.Type 对象,该对象表示当前类型的一维数组(下限为零)。
//
// 返回结果:
// 返回一个表示当前类型的一维数组(下限为零)的 System.Type 对象。
//
// 异常:
// T:System.NotSupportedException:
// 基类不支持调用的方法。 派生类必须提供一个实现。
//
// T:System.TypeLoadException:
// 当前的类型是 System.TypedReference。 - 或 - 当前的类型是 ByRef 类型。 也就是说,System.Type.IsByRef
// 返回 true。
public virtual Type MakeArrayType();
//
// 摘要:
// 返回表示作为 System.Type 参数(在 Visual Basic 中为 ref 参数)传递时的当前类型的 ByRef 对象。
//
// 返回结果:
// 表示作为 System.Type 参数(在 Visual Basic 中为 ref 参数)传递时的当前类型的 ByRef 对象。
//
// 异常:
// T:System.NotSupportedException:
// 基类不支持调用的方法。
//
// T:System.TypeLoadException:
// 当前的类型是 System.TypedReference。 - 或 - 当前的类型是 ByRef 类型。 也就是说,System.Type.IsByRef
// 返回 true。
public virtual Type MakeByRefType();
//
// 摘要:
// 替代由当前泛型类型定义的类型参数组成的类型数组的元素,并返回表示结果构造类型的 System.Type 对象。
//
// 参数:
// typeArguments:
// 将代替当前泛型类型的类型参数的类型数组。
//
// 返回结果:
// System.Type 表示的构造类型通过以下方式形成:用 typeArguments 的元素取代当前泛型类型的类型参数。
//
// 异常:
// T:System.InvalidOperationException:
// 当前的类型不表示泛型类型定义。 也就是说,System.Type.IsGenericTypeDefinition 返回 false。
//
// T:System.ArgumentNullException:
// typeArguments 为 null。 - 或 - typeArguments 的任意元素为 null。
//
// T:System.ArgumentException:
// typeArguments 中的元素数与当前泛型类型定义中的类型参数数不同。 - 或 - typeArguments 的所有元素都不满足为当前泛型类型的相应类型参数指定的约束。
// - 或 - typeArguments 包含一个元素,该元素是一个指针类型(System.Type.IsPointer 返回 true)、by-ref 类型(System.Type.IsByRef
// 返回 true)或 System.Void。
//
// T:System.NotSupportedException:
// 基类不支持调用的方法。 派生类必须提供一个实现。
public virtual Type MakeGenericType(params Type[] typeArguments);
//
// 摘要:
// 返回表示指向当前类型的指针的 System.Type 对象。
//
// 返回结果:
// 表示指向当前类型的指针的 System.Type 对象。
//
// 异常:
// T:System.NotSupportedException:
// 基类不支持调用的方法。
//
// T:System.TypeLoadException:
// 当前的类型是 System.TypedReference。 - 或 - 当前的类型是 ByRef 类型。 也就是说,System.Type.IsByRef
// 返回 true。
public virtual Type MakePointerType();
//
// 摘要:
// 返回表示当前 String 的名称的 Type。
//
// 返回结果:
// 表示当前 System.String 的名称的 System.Type。
public override string ToString();
//
// 摘要:
// 当在派生类中重写时,实现 System.Type.Attributes 属性 (Property),并获取指示与 System.Type 关联的属性 (Attribute)
// 的位屏蔽。
//
// 返回结果:
// 表示 System.Reflection.TypeAttributes 的属性集的 System.Type 对象。
protected abstract TypeAttributes GetAttributeFlagsImpl();
//
// 摘要:
// 当在派生类中重写时,使用指定的绑定约束和指定的调用约定搜索其参数与指定的参数类型和修饰符匹配的构造函数。
//
// 参数:
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。
//
// callConvention:
// 对象,用于指定要使用的一套规则,这些规则涉及参数的顺序和布局、传递返回值的方式、用于参数的寄存器和清理堆栈的方式。
//
// types:
// System.Type 对象的数组,表示构造函数要获取的参数的个数、顺序和类型。 - 或 - 获取不使用参数的构造函数的 System.Type 类型的空数组(即
// Type[] types = new Type[0])。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的构造函数的 System.Reflection.ConstructorInfo 对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.ArgumentNullException:
// types 为 null。 - 或 - types 的其中一个元素为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。 - 或 - types 和 modifiers 的长度不相同。
//
// T:System.NotSupportedException:
// 当前的类型是 System.Reflection.Emit.TypeBuilder 或 System.Reflection.Emit.GenericTypeParameterBuilder。
protected abstract ConstructorInfo GetConstructorImpl(BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 当在派生类中重写时,使用指定的绑定约束和指定的调用约定搜索其参数与指定的参数类型和修饰符匹配的指定方法。
//
// 参数:
// name:
// 包含要获取的方法名称的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。
//
// callConvention:
// 该对象,用于指定要使用的一套规则,这些规则涉及参数的顺序和布局、传递返回值的方式、用于参数的寄存器以及哪个进程清理堆栈。
//
// types:
// 表示此方法要获取的参数的个数、顺序和类型的 System.Type 对象数组。 - 或 - 一个类型为 System.Type(即 Type[] types
// = new Type[0])的空数组,用于获取一个不带参数的方法。 - 或 - null. 如果 types 为 null,则参数不匹配。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的方法的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称且与指定绑定约束匹配的方法。
//
// T:System.ArgumentNullException:
// name 为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。 - 或 - types 和 modifiers 的长度不相同。
//
// T:System.NotSupportedException:
// 当前的类型是 System.Reflection.Emit.TypeBuilder 或 System.Reflection.Emit.GenericTypeParameterBuilder。
protected abstract MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 当在派生类中重写时,使用指定的绑定约束搜索其参数与指定的参数类型和修饰符匹配的指定属性。
//
// 参数:
// name:
// 包含要获取的属性名的字符串。
//
// bindingAttr:
// 一个位屏蔽,由一个或多个指定搜索执行方式的 System.Reflection.BindingFlags 组成。 - 或 - 零,以返回 null。
//
// binder:
// 一个对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载成员、强制参数类型和通过反射调用成员。 - 或 - 要使用 Nothing 的空引用(在 Visual
// Basic 中为 System.Type.DefaultBinder)。
//
// returnType:
// 属性的返回类型。
//
// types:
// 一个 System.Type 对象数组,表示要获取的索引属性的参数的数目、顺序和类型。 - 或 - 获取未被索引的属性的 System.Type 类型的空数组(即
// Type[] types = new Type[0])。
//
// modifiers:
// System.Reflection.ParameterModifier 对象的数组,表示与 types 数组中的相应元素关联的特性。 默认的联编程序不处理此参数。
//
// 返回结果:
// 表示符合指定要求的属性的对象(如果找到的话);否则为 null。
//
// 异常:
// T:System.Reflection.AmbiguousMatchException:
// 找到多个具有指定名称的属性且属性与指定绑定约束匹配。
//
// T:System.ArgumentNullException:
// name 为 null。 - 或 - types 为 null。 - 或 - types 的其中一个元素为 null。
//
// T:System.ArgumentException:
// types 是多维的。 - 或 - modifiers 是多维的。 - 或 - types 和 modifiers 的长度不相同。
//
// T:System.NotSupportedException:
// 当前的类型是 System.Reflection.Emit.TypeBuilder、System.Reflection.Emit.EnumBuilder
// 或 System.Reflection.Emit.GenericTypeParameterBuilder。
protected abstract PropertyInfo GetPropertyImpl(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers);
//
// 摘要:
// 返回此 System.Type 实例的基础类型代码。
//
// 返回结果:
// 基础类型的类型代码。
protected virtual TypeCode GetTypeCodeImpl();
//
// 摘要:
// 当在派生类中重写时,实现 System.Type.HasElementType 属性,确定当前 System.Type 是否包含另一类型或对其引用;即,当前
// System.Type 是否是数组、指针或由引用传递。
//
// 返回结果:
// 如果 true 为数组、指针或按引用传递,则为 System.Type;否则为 false。
protected abstract bool HasElementTypeImpl();
//
// 摘要:
// 在派生类中重写时,实现 System.Type.IsArray 属性并确定 System.Type 是否为数组。
//
// 返回结果:
// 如果 true 是数组,则为 System.Type;否则为 false。
protected abstract bool IsArrayImpl();
//
// 摘要:
// 在派生类中重写时,实现 System.Type.IsByRef 属性并确定System.Type 是否通过引用传递。
//
// 返回结果:
// 如果 true 按引用传递,则为 System.Type;否则为 false。
protected abstract bool IsByRefImpl();
//
// 摘要:
// 当在派生类中重写时,实现 System.Type.IsCOMObject 属性并确定 System.Type 是否为 COM 对象。
//
// 返回结果:
// 如果 true 为 COM 对象,则为 System.Type;否则为 false。
protected abstract bool IsCOMObjectImpl();
//
// 摘要:
// 实现 System.Type.IsContextful 属性并确定 System.Type 在上下文中是否可以被承载。
//
// 返回结果:
// 如果 true 能够在某个上下文中承载,则为 System.Type;否则为 false。
protected virtual bool IsContextfulImpl();
//
// 摘要:
// 实现 System.Type.IsMarshalByRef 属性并确定 System.Type 是否按引用来进行封送。
//
// 返回结果:
// 如果 true 是由引用封送的,则为 System.Type;否则为 false。
protected virtual bool IsMarshalByRefImpl();
//
// 摘要:
// 在派生类中重写时,实现 System.Type.IsPointer 属性并确定 System.Type 是否为指针。
//
// 返回结果:
// 如果 true 是指针,则为 System.Type;否则为 false。
protected abstract bool IsPointerImpl();
//
// 摘要:
// 在派生类中重写时,实现 System.Type.IsPrimitive 属性并确定 System.Type 是否为基元类型之一。
//
// 返回结果:
// 如果 true 为基元类型之一,则为 System.Type;否则为 false。
protected abstract bool IsPrimitiveImpl();
//
// 摘要:
// 实现 System.Type.IsValueType 属性并确定 System.Type 是否是值类型;即,它不是值类或接口。
//
// 返回结果:
// 如果 true 是值类型,则为 System.Type;否则为 false。
protected virtual bool IsValueTypeImpl();
//
// 摘要:
// 指示两个 System.Type 对象是否相等。
//
// 参数:
// left:
// 要比较的第一个对象。
//
// right:
// 要比较的第二个对象。
//
// 返回结果:
// 如果 true 等于 left,则为 right;否则为 false。
[SecuritySafeCritical]
public static bool operator ==(Type left, Type right);
//
// 摘要:
// 指示两个 System.Type 对象是否不相等。
//
// 参数:
// left:
// 要比较的第一个对象。
//
// right:
// 要比较的第二个对象。
//
// 返回结果:
// 如果 true 不等于 left,则为 right;否则为 false。
[SecuritySafeCritical]
public static bool operator !=(Type left, Type right);
}
}