Activator.CreateInstance Method (Type)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Creates an instance of the specified type by using that type's default constructor.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- type
- Type: System.Type
The type of object to create.
| Exception | Condition |
|---|---|
| ArgumentNullException | type is null. |
| ArgumentException | type is not a RuntimeType. -or- type is an open generic type (that is, the ContainsGenericParameters property returns true). |
| NotSupportedException | Creation of Void and RuntimeArgumentHandle types, or arrays of those types, is not supported. |
| TargetInvocationException | The constructor being called throws an exception. |
| MethodAccessException | The caller does not have permission to call this constructor. |
| MemberAccessException | Cannot create an instance of an abstract class, or this member was invoked with a late-binding mechanism. |
| MissingMethodException | No matching public constructor was found. |
| COMException | type is a COM object but the class identifier used to obtain the type is invalid, or the identified class is not registered. |
| TypeLoadException | type is not a valid type. |
The type and the constructor to be invoked must be accessible. If you are using DynamicMethod to create a dynamic method, you cannot invoke internal constructors, because the dynamic method is hosted in an anonymous module in a system-provided assembly.
Version Notes
Windows Phone
For types that do not have constructors defined, the CreateInstance method throws a MemberAccessException exception instead of a MissingMethodException exception.The following code example demonstrates how to call the CreateInstance(Type) method. This code example is part of a larger example provided for the Activator class.
Type sbType = typeof(StringBuilder); // Create an instance of the StringBuilder type using Activator.CreateInstance // and the parameterless constructor. object o = Activator.CreateInstance(sbType); // Append a string to the StringBuilder object and display the StringBuilder, // late bound. sbType.InvokeMember("Append", BindingFlags.Public | BindingFlags.Instance | BindingFlags.InvokeMethod, Type.DefaultBinder, o, new object[] {"Hello, there."}); outputBlock.Text += o.ToString() + "\n";