GetType Method (String, Func(AssemblyName, Assembly), Func(Assembly, String, Boolean, Type))

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

.NET Framework 4.6 and 4.5

Gets the type with the specified name, 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, stringbool, Type> typeResolver


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.

Type: System.Func<AssemblyNameAssembly>

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.

Type: System.Func<AssemblyStringBooleanType>

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 typeResolver 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.

Return Value

Type: System.Type

The type with the specified name, or null if the type is not found.

Exception Condition

typeName is null.


A class initializer is invoked and throws an exception.


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).


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


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


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


typeName represents an array of TypedReference.


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


typeName contains an invalid assembly name.


typeName is a valid assembly name without a type name.


The assembly or one of its dependencies is not valid.


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.


If typeName cannot be found, the call to the GetType(String, Func<AssemblyName, Assembly>, Func<Assembly, String, Boolean, Type>) method returns null. It does not throw an exception. To control whether an exception is thrown, call an overload of the GetType method that has a throwOnError parameter.

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 throwOnError and ignoreCase parameters.

.NET Framework
Available since 4.0
Return to top
© 2015 Microsoft