TypeDescriptor::CreateInstance Method (IServiceProvider^, Type^, array<Type^>^, array<Object^>^)
Creates an object that can substitute for another data type.
Assembly: System (in System.dll)
public: static Object^ CreateInstance( IServiceProvider^ provider, Type^ objectType, array<Type^>^ argTypes, array<Object^>^ args )
Parameters
- provider
-
Type:
System::IServiceProvider^
The service provider that provides a TypeDescriptionProvider service. This parameter can be null.
- objectType
-
Type:
System::Type^
The Type of object to create.
- argTypes
-
Type:
array<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.
- args
-
Type:
array<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.
| Exception | Condition |
|---|---|
| ArgumentNullException | objectType is null, or args is null when argTypes is not null. |
| ArgumentException | 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.
Available since 2.0