動的にフォームを読み込む

プラグインみたいな感じにフォームを読み込んで表示したい!
そんなこともあると思います。

※以下のコードは、C#4.0でのみ動作します

    // 指定されたDLLのフォームのインスタンスを返す
    public System.Windows.Forms.Form CreateFormFactory(string assemblyName, string formName)
    {
        // DLLをロードする
        var d = System.Reflection.Assembly.LoadFrom(assemblyName);

        // インスタンスを作成して返す
        dynamic instance = Activator.CreateInstance<System.Windows.Forms.Form>();
        instance = Activator.CreateInstance(d.GetType(formName));
        return instance;
    }

    // 使い方
    var f = CreateFormFactory("MyFormLib.dll", "MyFormLib.MyForm1");
    f.Show();