The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

TypeDescriptor.CreateInstance Method

Creates an object that can substitute for another data type.

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

public static Object CreateInstance(
	IServiceProvider provider,
	Type objectType,
	Type[] argTypes,
	Object[] args


Type: System.IServiceProvider

The service provider that provides a TypeDescriptionProvider service. This parameter can be null.

Type: System.Type

The Type of object to create.

Type: System.Type[]

An optional array of parameter types to be passed to the object's constructor. This parameter can be null or an array of zero length.

Type: System.Object[]

An optional array of parameter values to pass to the object's constructor. If not null, the number of elements must be the same as argTypes.

Return Value

Type: System.Object
An instance of the substitute data type if an associated TypeDescriptionProvider is found; otherwise, null.


objectType is null, or args is null when argTypes is not null.


argTypes and args have different number of elements.

The CreateInstance method will search for a TypeDescriptionProvider that is associated with the specified objectType data type. This method first tries to obtain a type description provider from the provider parameter. If this fails, it searches its own internal tables for a provider (these entries were created through previous calls to AddProvider). If it finds a provider, this method will delegate the creation call to that object.

Notes to Inheritors

If the derived class does not provide a substitute instance, this method should call the base implementation.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
© 2015 Microsoft