Export (0) Print
Expand All

Type.GetType Method (String, Func<AssemblyName, Assembly>, Func<Assembly, String, Boolean, Type>, Boolean)

Gets the type with the specified name, specifying whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public static Type GetType(
	string typeName,
	Func<AssemblyName, Assembly> assemblyResolver,
	Func<Assembly, string, bool, Type> typeResolver,
	bool throwOnError
)

Parameters

typeName
Type: System.String

The name of the type to get. If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Type: System.Func<AssemblyName, Assembly>

A method that locates and returns the assembly that is specified in typeName. The assembly name is passed to assemblyResolver as an AssemblyName object. If typeName does not contain the name of an assembly, assemblyResolver is not called. If assemblyResolver is not supplied, standard assembly resolution is performed.

Caution   Do not pass methods from unknown or untrusted callers. Doing so could result in elevation of privilege for malicious code. Use only methods that you provide or that you are familiar with.

typeResolver
Type: System.Func<Assembly, String, Boolean, Type>

A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. If no assembly is provided, the method can provide one. The method also takes a parameter that specifies whether to perform a case-insensitive search; false is passed to that parameter.

Caution   Do not pass methods from unknown or untrusted callers.

throwOnError
Type: System.Boolean

true to throw an exception if the type cannot be found; false to return null. Specifying false also suppresses some other exception conditions, but not all of them. See the Exceptions section.

Return Value

Type: System.Type
The type with the specified name. If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. In some cases, an exception is thrown regardless of the value of throwOnError. See the Exceptions section.

ExceptionCondition
ArgumentNullException

typeName is null.

TargetInvocationException

A class initializer is invoked and throws an exception.

TypeLoadException

throwOnError is true and the type is not found.

-or-

throwOnError is true and typeName contains invalid characters, such as an embedded tab.

-or-

throwOnError is true and typeName is an empty string.

-or-

throwOnError is true and typeName represents an array type with an invalid size.

-or-

typeName represents an array of TypedReference.

ArgumentException

An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character).

-or-

throwOnError is true and typeName contains invalid syntax (for example, "MyType[,*,]").

-or-

typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments.

-or-

typeName represents a generic type that has an incorrect number of type arguments.

-or-

typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

FileNotFoundException

throwOnError is true and the assembly or one of its dependencies was not found.

-or-

typeName contains an invalid assembly name.

-or-

typeName is a valid assembly name without a type name.

FileLoadException

The assembly or one of its dependencies was found, but could not be loaded.

BadImageFormatException

The assembly or one of its dependencies is not valid.

-or-

The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

Usage scenarios for this method and details about the assemblyResolver and typeResolver parameters can be found in the GetType(String, Func<AssemblyName, Assembly>, Func<Assembly, String, Boolean, Type>, Boolean, Boolean) method overload.

Calling this method overload is the same as calling the GetType(String, Func<AssemblyName, Assembly>, Func<Assembly, String, Boolean, Type>, Boolean, Boolean) method overload and specifying false for the ignoreCase parameter.

.NET Framework

Supported in: 4.5.3, 4

.NET Framework Client Profile

Supported in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft