日期:2014-05-17  浏览次数:20827 次

在三层架构中工厂类实现时遇到的一个问题
我写了一个方法获取 类型

C# code

 private static System.Type GetImplType(string name)
        {
            string configName = System.Configuration.ConfigurationManager.AppSettings["DataAccess"];// 获取程序集名

            string className = string.Format("{0}.{1}", configName, name); //拼接程序集+类名  使之完整

             System.Reflection.Assembly.Load(configName);   //加载程序集

            System.Type type = System.Type.GetType(className);  //通过类名 得到 类型
            
          
            return type;
        }      



到这里我通过调试已经可以获取 className的值为 PetShop.SQLServerDAL.Category

为什么 调用这句后 System.Type type = System.Type.GetType(className); 

type 的值 为null?

希望大家帮忙看看


------解决方案--------------------
不可能吧。。
 string className = string.Format("{0}.{1}", configName, name); //拼接程序集+类名 使之完整 
这个明显为 string 撒
------解决方案--------------------
Assembly asm = Assembly.Load(configName); //加载程序集

System.Type type = asm.GetType(className); //通过类名 得到 类型


你把倒数第二句,第三句改成这样试试呢
------解决方案--------------------
1.Load(string)中的参数指的是:文件名称
2.GetType(string)中的参数指的是:命名空间.类名称
3.楼主写法错误,参照2楼