因为我使用这个方法的类都是和AbstractScenePageDTO处于一个命名空间以及程序集下的,所以获取命名空间和程序集的时候,直接使用AbstractScenePageDTO这个类进行获取,这样更准确一些,也不怕项目迁移改名。

C# 根据类名创建类的实例对象2
1         private T CreateActivityScenePageByKey<T>(string key) where T:AbstractScenePageDTO
2         {
3             //(基类)Assembly.Load("当前程序集名称").CreateInstance("命名空间.子类名称"));  
4             T x = (T)Assembly.Load(typeof(AbstractScenePageDTO).Assembly.GetName().Name)
5                 .CreateInstance((typeof(AbstractScenePageDTO).Namespace + "." + string.Format("{0}DTO", key)));
6             return x;
7         }
C# 根据类名创建类的实例对象2

http://blog.csdn.net/jzaicn/article/details/21284043

获取类型的写法从这里看来的

 //反射机制  
    //参数  
    object[] parameters = new object[1];  
    parameters[0] = _rowDataFromCore;  
      
    //(基类)Assembly.Load("当前程序集名称").CreateInstance("命名空间.子类名称"));  
    type = (ATypeBase)Assembly.Load(typeof(ATypeBase).Assembly.GetName().Name)  
        .CreateInstance(typeof(ATypeBase).Namespace + "." + string.Format("A{0}", typeName)  
                        ,false,System.Reflection.BindingFlags.Default  
                        ,null,parameters,null,null);  
View Code

相关文章: