System.Type.GetType 方法 (String, Func, Func, Boolean)

方法描述

获取具有指定名称的类型,指定在找不到该类型时是否引发异常,(可选)提供自定义方法以解析程序集和该类型。

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

public static Type GetType(
	string typeName,
	Func assemblyResolver,
	Func typeResolver,
	bool throwOnError
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
typeName System-String 要获取的类型的名称。如果提供了 typeResolver 参数,则类型名称可以为 typeResolver 能够解析的任何字符串。如果提供了 assemblyResolver 参数,或者使用了标准类型解析,则除非该类型位于当前正在执行的程序集或 Mscorlib.dll 中(在这种情况下足以提供其命名空间所限定的类型名称),否则 typeName 必须为程序集限定的名称(请参见 AssemblyQualifiedName)。
assemblyResolver System-Func 一个方法,它定位并返回 typeName 中指定的程序集。以 AssemblyName 对象形式传递给 assemblyResolver 的程序集名称。如果 typeName 不包含程序集的名称,则不调用 assemblyResolver。如果未提供 assemblyResolver,则执行标准程序集解析。警告 不要通过未知的或不受信任的调用方传递方法。此操作可能会导致恶意代码特权提升。仅使用您提供或者熟悉的方法。
typeResolver System-Func 一个方法,它在由 assemblyResolver 或标准程序集解析返回的程序集中定位并返回 typeName 所指定的类型。如果未提供任何程序集,则该方法可以提供一个程序集。该方法还采用一个参数以指定是否执行不区分大小写的搜索;false 传递给该参数。警告 不要通过未知的或不受信任的调用方传递方法。
throwOnError System-Boolean 如果为 true,则在找不到该类型时引发异常;如果为 false,则返回 null。指定 false 还会消除其他一些异常情况,但不能全部消除。请参见“异常”一节。
返回值 System.Type 具有指定名称的类型。 如果未找到该类型,则 throwOnError 参数指定是返回 null 还是引发异常。 某些情况下,无论 throwOnError 的值是什么,都会引发异常。 请参见“异常”一节。

提示和注释

在 GetType(String, Func, Func, Boolean, Boolean) 方法重载中,可以找到有关此方法的使用方案以及关于 assemblyResolver 和 typeResolver 参数的详细信息。

调用此方法重载等效于调用 GetType(String, Func, Func, Boolean, Boolean) 方法重载并且为ignoreCase 参数指定 false。

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


异常

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

命名空间

namespace: System

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

版本信息

.NET Framework 受以下版本支持:4 .NET Framework Client Profile 受以下版本支持:4

适用平台

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