以下はConstructorInfoを使ってコンストラクタを呼び出し、インスタンスを作成・初期化する例です。 ConstructorInfo.Invokeメソッドを呼び出す際にはインスタンスを指定する必要がない点、作成されたインスタンスは戻り値として返される点を除けば、MethodInfo.Invokeメソッドと変わりありません。

ConstructorInfoを使ってコンストラクタを呼び出し、インスタンスを作成する
using System;
using System.Reflection;

class C {
  private string str = "Hello, world!";

  public C()
  {
  }

  public C(string str)
  {
    this.str = str;
  }

  public override string ToString()
  {
    return str;
  }
}

class Sample {
  static void Main()
  {
    Type t = typeof(C);

    object inst;

    // 引数を持たないコンストラクタのConstructorInfoを取得する
    ConstructorInfo c1 = t.GetConstructor(Type.EmptyTypes);

    // コンストラクタを呼び出してインスタンスを作成する
    inst = c1.Invoke(null);

    Console.WriteLine(inst);

    // string型の引数を1つとるコンストラクタのConstructorInfoを取得する
    ConstructorInfo c2 = t.GetConstructor(new Type[] {typeof(string)});

    // コンストラクタを呼び出してインスタンスを作成する
    inst = c2.Invoke(new object[] {"Hello, instance!"});

    Console.WriteLine(inst);
  }
}
実行結果
Hello, world!
Hello, instance!

コンストラクタ呼び出しの結果例外が発生した場合、TargetInvocationExceptionがスローされます。 実際にスローされた例外を取得する方法などについて詳細は§.呼び出し時の例外 (TargetInvocationException)を参照してください。