Type.ReflectionOnlyGetType(String, Boolean, Boolean) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
注意
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
参数
- throwIfNotFound
- Boolean
如果为 true
,则会在找不到该类型时引发 TypeLoadException;如果为 false
,则在找不到该类型时返回 null
。 指定 false
还会取消某些其他异常条件,但并不取消所有条件。 请参见“异常”部分。
- ignoreCase
- Boolean
如果为 true
,则执行不区分大小写的 typeName
搜索;如果为 false
,则执行区分大小写的 typeName
搜索。
返回
具有指定名称的类型(如果找到的话);否则为 null
。 如果找不到该类型,则 throwIfNotFound
参数指定是返回 null
还是引发异常。 在某些情况下,将引发异常,而不考虑 throwIfNotFound
的值。 请参见“异常”部分。
- 属性
例外
typeName
为 null
。
调用了类初始值设定项,且该项引发了异常。
throwIfNotFound
是 true
,且找不到该类型。
或
throwIfNotFound
的值为 true
,且 typeName
包含无效字符,例如嵌入的制表符。
或
throwIfNotFound
的值为 true
,且 typeName
为空字符串。
或
throwIfNotFound
的值为 true
,且 typeName
表示大小无效的数组类型。
或
typeName
表示 TypedReference 对象数组。
typeName
不包括程序集名称。
或
throwIfNotFound
为 true
,且 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 则即使 throwIfNotFound
为 false
,也会引发 。
有关使用仅反射上下文的详细信息,请参阅 如何:将程序集加载到 Reflection-Only 上下文中。