TypeDescriptionProvider.CreateInstance Method

Definition

Creates an object that can substitute for another data type.

[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public virtual object CreateInstance (IServiceProvider provider, Type objectType, Type[] argTypes, object[] args);
public virtual object? CreateInstance (IServiceProvider? provider, Type objectType, Type[]? argTypes, object[]? args);
public virtual object? CreateInstance (IServiceProvider? provider, Type objectType, Type[]? argTypes, object?[]? args);
public virtual object CreateInstance (IServiceProvider provider, Type objectType, Type[] argTypes, object[] args);

Parameters

provider
IServiceProvider

An optional service provider.

objectType
Type

The type of object to create. This parameter is never null.

argTypes
Type[]

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

args
Object[]

An optional array of parameter values to pass to the object's constructor.

Returns

The substitute Object.

Attributes

Remarks

The IServiceProvider specified by the provider parameter is passed in by the TypeDescriptor.CreateInstance method of the TypeDescriptor class. If provider is not null, the service provider can be used by the type description provider to obtain additional context about the creation call.

The CreateInstance method is virtual and, by default, returns the result of the Activator.CreateInstance method if parent is null. If parent is not null, this method will invoke the CreateInstance method of the parent provider.

Notes to Inheritors

If the derived class is not interested in providing a substitute instance, it should just call the base implementation.

Applies to

Product Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7 (package-provided), 4.7, 4.7.1 (package-provided), 4.7.1, 4.7.2 (package-provided), 4.7.2, 4.8 (package-provided), 4.8, 4.8.1
.NET Standard 2.0, 2.1

See also