使用抽象工厂模式,在客户端根据窗体名fname创建对应的窗体//客户端:
string fname="Form1"; //在设计器中设计好的窗体的名字,可以是"Form1","Form2"等等; 
clsFormFactory MyFormFactory = new clsFormFactory();
Form frmChild =MyFormFactory.CreateForm(fname);
--------------------------------------------------------
//类clsFormFactory:
class clsFormFactory
    {
        public Form CreateForm(string fname)
        {
            Form MyForm = null;            switch (fname)
            {
                case "Form1":
                    MyForm= new Form1();
                    break;
                case "Form2":
                    MyForm = new Form2();
                    break;
                default :
                    MyForm = null;
                    break;
            }            return MyForm;
        }
    }
以上调试通过。
--------------------------------------------------------
但是类clsFormFactory中的switch代码块很丑陋,想通过反射机制优化:
class clsFormFactory
    {
        public Form CreateForm(string fname)
        {
            Form MyForm = null;            
            try
            {
                Type type = Type.GetType(fname, true);//此处出错:无法得到Form1类
                MyForm = (Form)System.Activator.CreateInstance(type);
            }
            catch (TypeLoadException e)
            {
                MessageBox.Show( e.Message);
            }             
            return MyForm;
        }
    }请问该如何改正?