今天在学习人家的程序的时候发现这段代码用了activator类
 public IDbConnection CreateConnection()
        {
            return (IDbConnection)Activator.CreateInstance(_typeAccessProvider.ConnectionType);
        }
这个activator拿来干什么的?有什么好处?(我翻看MSDN的解释没看明白)

解决方案 »

  1.   

    remoting 里面用的比较多。
      

  2.   

    用以在本地或从远程创建对象类型,或获取对现有远程对象的引用。
    (IDbConnection)Activator.CreateInstance(_typeAccessProvider.ConnectionType);
    在远程有一个IDbConnection的类,在本地实例化一个它的对象。
      

  3.   

    动态加载,
    http://www.c-sharpcenter.com/CSNET/dynamicinvoke.asp
    http://www.c-sharpcorner.com/Code/2002/April/LoadingAssemblyInfo.asp
    使用反射生成一个窗体:
    private void button1_Click(object sender, System.EventArgs e)
    {
    Assembly assm = Assembly.LoadFrom("e:\\WindowsApplication.dll");
    Type TypeToLoad= assm.GetType("WindowsApplication.Form1");

    object obj;
    obj = Activator.CreateInstance(TypeToLoad);
    Form formToShow = null;
    formToShow = (Form)obj;
    formToShow.Show();

    }Dynamically load a class and execute a method in .NET
    http://www.codeproject.com/csharp/DynLoadClassInvokeMethod.asp