Export (0) Print
Expand All

Assembly.CreateInstance Method (String)

Locates the specified type from this assembly and creates an instance of it using the system activator, using case-sensitive search.

Namespace:  System.Reflection
Assembly:  mscorlib (in mscorlib.dll)

public Object CreateInstance(
	string typeName
)

Parameters

typeName
Type: System.String

The Type.FullName of the type to locate.

Return Value

Type: System.Object
An instance of the specified type created with the default constructor; or null if typeName is not found. The type is resolved using the default binder, without specifying culture or activation attributes, and with BindingFlags set to Public or Instance.

Implements

_Assembly.CreateInstance(String)

ExceptionCondition
ArgumentException

typeName is an empty string ("") or a string beginning with a null character.

-or-

The current assembly was loaded into the reflection-only context.

ArgumentNullException

typeName is null.

MissingMethodException

No matching constructor was found.

FileNotFoundException

typeName requires a dependent assembly that could not be found.

FileLoadException

typeName requires a dependent assembly that was found but could not be loaded.

-or-

The current assembly was loaded into the reflection-only context, and typeName requires a dependent assembly that was not preloaded.

BadImageFormatException

typeName requires a dependent assembly, but the file is not a valid assembly.

-or-

typeName requires a dependent assembly that was compiled for a version of the runtime that is later than the currently loaded version.

If the runtime is unable to find typeName in the Assembly instance, it returns null instead of throwing an exception. This might happen because:

  • You haven't specified the fully qualified name of the type.

  • You've specified the fully qualified type name, but its case doesn’t match the case of the type's Type.FullName property. For a case-insensitive comparison of typeName with the type's full name, call the CreateInstance(String, Boolean) overload and specify true for the ignoreCase argument.

  • The type doesn’t exist in the current Assembly instance.

The following example defines a Person class and calls the CreateInstance(String) method to instantiate it.

using System;
using System.Reflection;
using Contoso.Libraries;

namespace Contoso.Libraries
{
   public class Person
   {
      private string _name;

      public Person()
      { }

      public Person(string name)
      {
         this._name = name;
      }

      public string Name
      { get { return this._name; }
        set { this._name = value; } }

      public override string ToString()
      {
         return this._name;
      }
   }
}

public class Example
{
   public static void Main()
   {
      Assembly assem = typeof(Person).Assembly;
      Person p = (Person) assem.CreateInstance("Contoso.Libraries.Person");
      if (! (p == null)) {
         p.Name = "John";
         Console.WriteLine("Instantiated a {0} object whose value is '{1}'",
                           p.GetType().Name, p);
      }
      else {
         Console.WriteLine("Unable to instantiate a Person object.");
      }   
   }
}
// The example displays the following output: 
//        Instantiated a Person object whose value is 'John'

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft