Type.ReflectionOnlyGetType(String, Boolean, Boolean) 方法

定义

注意

ReflectionOnly loading is not supported and throws PlatformNotSupportedException.

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

public:
 static Type ^ ReflectionOnlyGetType(System::String ^ typeName, bool throwIfNotFound, bool ignoreCase);
public static Type? ReflectionOnlyGetType (string typeName, bool throwIfNotFound, bool ignoreCase);
[System.Obsolete("ReflectionOnly loading is not supported and throws PlatformNotSupportedException.", DiagnosticId="SYSLIB0018", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public static Type? ReflectionOnlyGetType (string typeName, bool throwIfNotFound, bool ignoreCase);
public static Type ReflectionOnlyGetType (string typeName, bool throwIfNotFound, bool ignoreCase);
static member ReflectionOnlyGetType : string * bool * bool -> Type
[<System.Obsolete("ReflectionOnly loading is not supported and throws PlatformNotSupportedException.", DiagnosticId="SYSLIB0018", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
static member ReflectionOnlyGetType : string * bool * bool -> Type
Public Shared Function ReflectionOnlyGetType (typeName As String, throwIfNotFound As Boolean, ignoreCase As Boolean) As Type

参数

typeName
String

要获取的 Type 的程序集限定名称。

throwIfNotFound
Boolean

如果为 true,则会在找不到该类型时引发 TypeLoadException;如果为 false,则在找不到该类型时返回 null。 指定 false 还会取消某些其他异常条件,但并不取消所有条件。 请参见“异常”部分。

ignoreCase
Boolean

如果为 true,则执行不区分大小写的 typeName 搜索;如果为 false,则执行区分大小写的 typeName 搜索。

返回

具有指定名称的类型(如果找到的话);否则为 null。 如果找不到该类型,则 throwIfNotFound 参数指定是返回 null 还是引发异常。 在某些情况下,将引发异常,而不考虑 throwIfNotFound 的值。 请参见“异常”部分。

属性

例外

typeNamenull

调用了类初始值设定项,且该项引发了异常。

throwIfNotFoundtrue,且找不到该类型。

throwIfNotFound 的值为 true,且 typeName 包含无效字符,例如嵌入的制表符。

throwIfNotFound 的值为 true,且 typeName 为空字符串。

throwIfNotFound 的值为 true,且 typeName 表示大小无效的数组类型。

typeName 表示 TypedReference 对象数组。

typeName 不包括程序集名称。

throwIfNotFoundtrue,且 typeName 包含无效的语法(例如 "MyType[,*,]")。

typeName 表示将指针类型、ByRef 类型或 Void 作为其类型参数之一的泛型类型。

typeName 表示具有错误的类型参数数目的泛型类型。

typeName 表示泛型类型,并且其类型参数之一不满足相应类型参数的约束。

throwIfNotFound 的值为 true,且未找到程序集或程序集的某个依赖项。

找到了程序集或其依赖项之一,但无法加载它们。

程序集或其依赖项之一不是当前加载的运行时的有效程序集。

仅限 .NET Core 和 .NET 5 及更高版本:在所有情况下。

注解

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

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

参数 throwIfNotFound 指定在找不到类型时发生的情况,并取消某些其他异常条件,如异常部分中所述。 无论 的值 throwIfNotFound如何,都会引发一些异常。 例如,如果程序集无效, BadImageFormatException 则即使 throwIfNotFoundfalse,也会引发 。

有关使用仅反射上下文的详细信息,请参阅 如何:将程序集加载到 Reflection-Only 上下文中。

适用于

另请参阅