System.Type.ReflectionOnlyGetType 方法

方法描述

获取具有指定名称的 Type,指定是否执行区分大小写的搜索,以及在找不到类型时是否引发异常。 该类型只为反射加载,而不为执行加载。

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

public static Type ReflectionOnlyGetType(
	string typeName,
	bool throwIfNotFound,
	bool ignoreCase
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
typeName System-String 获取Type的程序集限定名称。
throwIfNotFound System-Boolean 如果为 true,则会在找不到该类型时引发 TypeLoadException;如果为 false,则在找不到该类型时返回 null。指定 false 还会消除其他一些异常情况,但不能全部消除。请参见“异常”一节。
ignoreCase System-Boolean 如果为 true,则执行不区分大小写的 typeName 搜索;如果为 false,则执行区分大小写的 typeName 搜索。
返回值 System.Type 具有指定名称的类型(如果找到的话);否则为 null。 如果未找到该类型,则 throwIfNotFound 参数指定是返回 null 还是引发异常。 某些情况下,无论 throwIfNotFound 的值是什么,都会引发异常。 请参见“异常”一节。

提示和注释

如果包含该类型的程序集尚未加载到仅反射上下文中,且该类型是程序集限定类型,则使用 ReflectionOnlyGetType 方法等效于首先使用 ReflectionOnlyLoad 方法仅为反射加载程序集,然后通过调用程序集的 Assembly.GetType 方法加载该类型。 有关程序集限定的名称的信息,请参见 Type.AssemblyQualifiedName 属性。 有关指定类型名称的其他详细信息,请参见 GetType(String, Boolean, Boolean) 方法重载。

如果程序集已为执行而加载,则另一个副本加载到仅反射上下文中。

throwIfNotFound 参数指定当找不到该类型时发生的事件,还取消某些其他异常条件(如"异常"部分所述)。 将引发某些异常,而不考虑 throwIfNotFound 的值。 例如,如果程序集无效,那么即使 throwIfNotFound 为 false,也将引发 BadImageFormatException。

有关使用仅反射上下文的更多信息,请参见如何:将程序集加载到仅反射上下文中。

System.Type.ReflectionOnlyGetType 方法例子


异常

异常 异常描述
ArgumentNullException typeName 为 null。
TargetInvocationException 调用类初始值设定项并引发异常。
TypeLoadException
  • throwIfNotFound 为 true,该类型未找到。
  • throwIfNotFound 为 true 并且 typeName 包含无效的字符,如内嵌选项卡。
  • throwIfNotFound 为 true 并且 typeName 为空字符串。
  • throwIfNotFound 为 true 并且 typeName 表示具有无效大小的数组类型。
  • typeName 表示 TypedReference 对象的数组。
ArgumentException
  • typeName 不包含程序集名称。
  • throwIfNotFound 为 true 且 typeName 包含无效的语法(例如,"MyType[,*,]"。
  • typeName 表示具有指针类型、ByRef 类型或 Void 作为其类型参数之一的泛型类型。
  • typeName 表示具有不正确数量的类型参数的泛型类型。
  • typeName 表示泛型类型,其类型参数之一不满足对应类型参数的约束。
FileNotFoundException throwIfNotFound 为 true,并且未找到该程序集或其依赖项之一。
FileLoadException 找到了该程序集或它的某个依赖项,但未能加载。
BadImageFormatException
  • 该程序集或它的某个依赖项无效。
  • 该程序集是使用比当前加载的版本更高的公共语言运行时版本编译的。

命名空间

namespace: System

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

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.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 系统要求。